Vlastní knihovna nebo lépe řečeno kousek kódu

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

Zdravím,
s Nette se teprve seznamuji a narazil jsem na jednu věc se kterou si nevím rady. Doposavad jsem pracoval s jinými frameworky a podobné věci, které si člověk čase dodělává aby si ušetřil práci se cpali do knihoven popřípadě helperů, ale zde si tím nejsem vůbec jist.

Mám napsanou vlastní třídu na generování formulářů, kterou postupně volám nastavuji atd… a rád bych ji překopal tak aby mi fungovala i v Nette na které se chystám přejít, ale nevím kam jí šoupnout.
Koukal jsem na Doplňky ale jaksi chybí stránka

jak přidat nové rozšíření

Jakým způsobem tedy řešíte vlastní psaní vlastních „knihoven“ kam s nimi a jak je volat?

Filip111
Člen | 244
+
0
-

Stejnou otázku jsem si kladl před pár dny – začal jsem k tomu využívat BasePresenter, případně jsem si ho podědil jako FrontBasePresenter a AdminBasePresenter a presentery jsou jejich potomci.

Pár věcí bych dal možná do Modelu.

Rád si ale vyslechnu rady zkušenějších, možná to dělám blbě.

Budry
Člen | 88
+
0
-

Tadle možnost mě také napadla, ale rád bych si je vystrčil někam mimo a jenom linkoval at to nemusím neustále psát rsp. kopírovat znova. Pohodlnější mi přijde nakopírovat soubor někam do složky s knihovnami a pak jenom zavolat v presetneru/modelu

EDIT:

Ono by bylo řešením si načíst v bootstrapu nějaký adresář pro vlastní knihovny a pak je automaticky všechny načítat a přistupovat by se k nim tak dalo, ale nevím jestli je to ideální

Editoval Budry (18. 8. 2011 19:28)

bazo
Člen | 620
+
0
-

Ak to umiestnis do zlozky app alebo libs, kamkolvek, tak robot loader to automaticky nacita. A tie formulare riesi Nette velmi fajn, mozno tu tvoju formularovu knihovnu ani nebudes potrebovat

newPOPE
Člen | 648
+
0
-

Kam si ukladad triedy zalezi od toho co robia, maju na starosti..

modely → /models

Epay kniznice → /libs/Epay

ja sa napr. rozhodujem podla pouzitia triedy, ci ma nieco z aplikaciou alebo je to kniznica 3tej strany ci sa pouziva napriec aplikaciou.

Este mam zasadu, ze na vsetky externe kniznice si pisem ‚wrappery‘.

Patrik Votoček
Člen | 2221
+
0
-

Obecně je pro tento účel určena složka libs v sandboxu. Pokud se bavíme o nějaké registraci tak ta by se měla dít v configu nebo bootstrapu.

Filip Procházka
Moderator | 4668
+
0
-

Pánové, nastudovat: auto-loading a formuláře

Budry
Člen | 88
+
0
-

Aktuální knihovna se stará pouze o vytvoření formuláře. Generuje libovolný počet libovolných formulářových prvků s libovolnými vlastnostmi.

Přepisu jeden ze svých projektů do Nette a v jednom momentu potřebuji vypsat 25 prvků formuláře (inputy, selecty) některý přiřadit hodnoty, některým ne. Nastavit selected atd…

Pokud todle Nette zvládne bez pomocí externí knihovny tak smekám :)

Ale v zásadě mi šlo o princip. Většina knihoven jde napříč celou aplikací, vlastní parsery pro data atd…
Pokud jsem dobře pochopil nic mi nebrání vytvořit v app/ složku libs/ a do ní si nahrávat své vlastní externí třídy

EDIT: ale je pravdou že většina (nevzpomínám si teď na jinou možnost) se stará především o práci modelů tudíž by asi umístění ve složce models/ bylo vhodnější

Editoval Budry (18. 8. 2011 20:10)

Filip Procházka
Moderator | 4668
+
0
-

trošku ti to upřesním, jak to chápu já

/app
	/models - bussines logika aplikace

/libs - knihovny
	/Nette
	/dibi
	/Zend
	/mpdf
	/mujSuperCollFrameworkNadNette (třeba Kdyby :)
	...

Co se týká těch formulářů. Nečetl jsi snad dokumentaci?

Co potřebuješ udělat? Nette formuláře ti s tím pomůžou a my taky :)

Editoval HosipLan (18. 8. 2011 20:39)

Acnnair
Člen | 34
+
0
-

Nette formuláre toto všetko zvládnu a ako bonus k tomu máš validáciu. Ako na strane JS, tak na strane PHP.

Svoje vlastné triedy si môžeš umiestniť kam chceš, Loader sa ti o nahratie sám postará.

Ako písal HosipLan, v dokumentácii nájdeš všetko potrebné.

Budry
Člen | 88
+
0
-

Omlouvám se, asi jsem to trochu zamotal. Šlo mi především o to umístění knihoven, dokumentaci jsem četl a volit příklad s formuláři nebylo zrovna nejšťastnější řešení, neuvědomil jsem si že to Nette zvládne i bez knihovny… (zvyk z předchozího frameworku)

Díky, už si s tím poradím

nanuqcz
Člen | 822
+
0
-

Budry napsal(a):

Pokud jsem dobře pochopil nic mi nebrání vytvořit v app/ složku libs/ a do ní si nahrávat své vlastní externí třídy

Možná, že už to víš, ale všiml sis, že v zipu s Nette je tzv. Sandbox? Je to předpřipravený základ Nette aplikace, a např. složka libs/ je tam už vytvořená. Viz github