Vlastní knihovna nebo lépe řečeno kousek kódu
- Budry
- Člen | 88
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ým způsobem tedy řešíte vlastní psaní vlastních „knihoven“ kam s nimi a jak je volat?
- Filip111
- Člen | 244
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
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)
- newPOPE
- Člen | 648
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
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.
- Budry
- Člen | 88
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
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)
- Budry
- Člen | 88
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
Budry napsal(a):
Pokud jsem dobře pochopil nic mi nebrání vytvořit v
app/
složkulibs/
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