využitie triedy Form z nette samostatne

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
xxxmisko
Člen | 140
+
0
-

Ahojte páni!

Prosím vedeli by ste mi poradiť, ako by som mohol do svojho projektu pridať triedu nette\forms\form?
Ide totiž o to, že keď do projektu naloadujem cez loader celý nette framework, vypisuje mi samé chyby, ako napríklad:
cannot set cookie after http headers have been sent
cannot set session after http headers have been sent

proste hádže mi tam chyby, preto by som chcel použiť len tú triedu nette forms bez spúšťania kompletného frameworku (aj keď to asi nie je možné).

Za každú radu ďakujem

enumag
Člen | 2118
+
0
-

Možné to je. https://doc.nette.org/cs/forms
Nejspíš ti tam blbne CSRF protection, to je jediná věc ve formulářích o které vím, že potřebuje session.

xxxmisko
Člen | 140
+
0
-

hej, toto som našiel. ja si štartujem session teraz manuálne cez session_start(). ako by sa to dalo obísť, aby som nemusel prerábať pol aplikácie a aby to pekne šlo?

enumag
Člen | 2118
+
0
-

Z tvého popisu netuším co se děje takže nedokážu pomoct. Zkus to rozvést – upřesnit kde přesně v Nette je vyhozena výjimka, kus tvého kódu, jakou máš verzi Nette atd.

Editoval enumag (25. 7. 2013 13:56)

xxxmisko
Člen | 140
+
0
-

Takto: teraz je konkrétne problém s týmto:

https://forum.nette.org/…-maxlifetime

už mi aj ladenka funguje, takže pekný výpis hovorí:

Nette\InvalidStateException

Unable to set ‚session.gc_maxlifetime‘ to value ‚10800‘ when session has been started by session.auto_start or session_start()

Deje sa tak pri vytvorení toho testovacieho formulára
$form->addText(‚name‘, ‚Jméno:‘);

takže asi nejako štartovať session cez nette, ale neviem, ako

Majkl578
Moderator | 1364
+
0
-

Zvláštní. Nepřidáváš CSRF ochranu ($form->addProtection())?

enumag
Člen | 2118
+
0
-

A četls to téma až do konce? Je tam i řešení. https://forum.nette.org/…-maxlifetime#…

xxxmisko
Člen | 140
+
0
-

v novom nette nie je environment, nie? ja som to spravil tak, že som nastavil
ini_set(„session.gc_maxlifetime“, „10800“);

pred funkciou session_start(); a zatiaľ fungujem. :D

enumag
Člen | 2118
+
0
-

Environment v Nette stále je.

xxxmisko
Člen | 140
+
0
-

máš pravdu, spravil som to cez ten environment. Len ma napadla ešte jedna vec. Z normálneho nette som naučený na používanie doplnkov vo formoch, ako replicator atď. Je možné, si nejako pridať do projektu aj tieto doplnky, ale aby to stále nebola MVC aplikácia nette? Ďakujem veľmi pekne za pomoc

Šaman
Člen | 2666
+
0
-

Nechápu co si představuješ pod podmínkou „aby to stále nebola MVC aplikácia nette“. Ale odpověď je pravděpodobně ano, lze přidávat doplňky a psát kód do presenterů bez modelu. Dokonce můžeš i echovat z presenterů a nevyužít šablony. (Fuj, ne aby tě to napadlo.)
Nette, ani jeho doplňky, pro model žádné nástroje a best practise nemají, takže pokud nechceš, nemusíš model zavádět. Na jeho užitečnost příjdeš časem sám. (Mimochodem model je všechno, co není v presenterech, nebo v šablonách. Nejedná se jen o repozitáře a třídy v namespace Model, ale třeba i vlastní validátory, řízení práv a účtů, výpočty čehokoliv mimo presentery.)

//Edit: Aha, asi už jsem to pochopil – ty nechceš používat Nette, ale jen doplňky? To s velkou pravděpodobností nepůjde, resp. šlo by to jen, kdybys měl v projektu všechny části Nette, na kterých je doplňek závislý. Takže u formulářových doplňků minimálně Form, ale může toho být víc. U DataGridů to může být celé jádro kvůli zpracování signálů apod. Proč nechceš používat celé Nette?

Editoval Šaman (29. 7. 2013 8:36)

xxxmisko
Člen | 140
+
0
-

takto šaman, ja som robil aplikáciu v nette, je to super nástroj, všetky výhody som si vyskúšal.
Len teraz pracujem na jednom rozrobenom projekte, ktorý nepoužíva žiadny framework, všetko, čo nette ponúka v základe, si tu človek musí dorobiť sám. Napríklad teraz plánujem dorobiť 2 formuláre, ktoré budú dosť obsiahle a na to, aby som ich nemusel ručne (bohužiaľ aj tak sa dá), chcem využiť nette forms vrátane doplnkov replicator, checkboxlist,…

Avšak chcem (musím) obísť klasický prístup k aplikácii cez basepresenter, vlastné modely, prezentéry a samozrejme šablóny. Toto som myslel tým MVC aplikácia nette. Skrátka celá routovacia, rozhodovacia, prihlasovacia a neviem aká logika je už spravená a bolo by veľmi ťažké napasovať to do nového nette projektu. Takže otázka zostáva, ako využiť nette forms + pridať si tam nejaké „vlastné“ doplnky z addons.nette? Ďakujem

Editoval xxxmisko (29. 7. 2013 8:41)