co se složkou templates/components/
- vitush93
- Člen | 33
nazdar, mám pár dotazů ohledně komponent:
První se týká složky app/templates/components/ v sandboxu – jejímu umístění a účelu příliš nerozumím – napojit odtud template pro komponentu nějakým pěkným interním způsobem nelze (nebo?).
Druhá se týká obsahu výše uvedené složky – form.latte. K čemu to? Je to jen sample?
V quickstartu se mi nelíbilo nahození komponenty a latte souboru přímo do rootu app/components/ a tak jsem skončil se strukturou:
app/components/Neco/Neco.php
app/components/Neco/Neco.latte
Nahrávání a render je pak řešen automaticky, nevím jestli nejlepší řešení.
Jak loading komponent, render jejich templatů a jejich umístění řešíte vy? Není na to nějaký built-in systém?
Díky
- Šaman
- Člen | 2666
Já to s umístěním řeším jako ty (jen šablona začíná malým
písmenemm protože jen třídy jsou velkým).
Dokonce mi to tak přirostli k srdci, že plánuji přepsat hledání šablon
tak, aby mi je hledalo ve stejném adresáři, jako presenter. Protože
presenter a šablony jsou úzce spjaté a jedno bez druhého nemá smysl. Tak
moc nechápu, proč je oddělovat.
Konkrétně si to představuji takto:
<?php
app
- presenters
- UserPresenter
- UserPresenter.php
- templates
- detail.latte
- list.latte
?>
- David Grudl
- Nette Core | 8232
components asi není úplně vhodný název, jde prostě o adresář pro části šablony, které lze inkludovat z jakéhokoliv prezenteru. Nesouvisí to s komponentami presenterů.
- JHadamcik
- Člen | 47
David Grudl napsal(a):
components asi není úplně vhodný název, jde prostě o adresář pro části šablony, které lze inkludovat z jakéhokoliv prezenteru. Nesouvisí to s komponentami presenterů.
Na druhou stranu mě nenapadá lepší.
Jinak já třeba s oddělením souhlasím a má adresářová struktura vypadá
app
- components
NewComponent.php
- templates
-newComponent.latte
- presenters
- UserPreseter.php
- templates
- user
- default.latte
Obecně jak je to v sandboxu. Mám to tak rád, protože mám oddělenou V a P vrstvu. Šablony u komponent jsou z důvodu, abych je měl blízko. Ono by bylo možná vhodnější dát do app->templates složku components pro vykreslitelné komponenty presenterů. Cesta k šablonám by u komponent byla trochu delší, ale přišlo by mi to logické.
No a kdybych zašel ještě dál a představil si components jen a pouze jako vykreslitelné komponenty presenterů a třeba controls jako nevykreslitelné komponenty presenterů, pak by se dalo vložit components i controls do složky presenters a v app udělat kupříkladu složku controls pro cokoliv, co není spjato s presenterem.
Výsledek asi takto:
app
- controls
- Datagrid.php
- presenters
- UserPresenter.php
-controls
- EmailVerification.php
-components
- Comments.php
- templates
- User
- default.latte
- components
- comments.latte
Jak to vypadá?