Pomoc s vhodným návrhem komponent
- kloban
- Člen | 123
Ahoj,
stále se ještě snažím pochopit jak v rámci nette co nejsprávněji
používat komponenty.
Dejme tomu, že mám tento případ. V rámci aplikace, chci zobrazovat
přehled produktů, dále chci produkty editovat a přidávat.
Mám tedy tři komponenty (zobrazení, přidání, editace).
Tyto komponenty momentálně nechci zobrazovat současně. Vždy bude na
stránce zobrazena pouze jedna komponenta.
Jsem tedy v situaci, kdy bych si pohodlně vystačil pouze s presentery, ale pro budoucí rozšiřování aplikace chci použít komponenty.
Jde mi teď o to, že komponentu vždy načítám přes presenter. Budu mít
tedy ve výsledku 3 presentery, kde každý zobrazí jednu komponentu? A ke
každému presenteru šablonu, v které bude ale vlastně pouze
{control jmenoKomponenty}
, protože budu zobrazovat opravdu jen
komponentu. Uvažuji správně?
Místo nějakých šesti souborů (3× presenter + 3× šablona) jich budu mít 15 (3× presenter + 3× šablona presenteru + 3× componenta + 3× šablona componenty + 3× tovarnička).
Díky Dan
- Azathoth
- Člen | 495
já někdy mám v rámci jednoho presenteru v rámci jedné akce template,
kde mám něco jako
{if $nejakaPodminka}
{control komponenta1}
{else}
{control komponenta2}
{/if}
a presenter má v sobě tovární funkci na obě komponenty…
komponenty jsou dobré právě na to, abys neměl zbytečně moc presenterů.
Podle mne.
- Myiyk
- Člen | 321
Továrničky můžeš dávat ke komponentám.
Nemusíš zrovna použít 3 presentery, stačí jeden s akcemi zobrazit,
přidat, editovat.
Tématicky pokud se jedná o jeden typ položky, tak použiješ jeden
presenter, např. „ProductPresenter“.
1× presenter + 3× šablona presenteru + 3× componenta s továrničkou + 3× šablona componenty = 10 souborů
Lze mít také jednu univerzální šablonu pro presentery. V šabloně budeš mít komponentu přes proměnnou (ne staticky jako obvykle). S tím budeš na 8 souborech.
- Šaman
- Člen | 2659
Snižovat počet souborů tímto způsobem mi nepřijde dobrý. Jeden presenter pro jednu problematiku (u tebe pro jednu entitu) ano, ale určitě ne nějaký jeden magický presenter pro různé entity. A ty továrničky bych dal taky zvlášť, i když spolu s komponentou by to asi nemělo ničemu vadit.
Ale zato bych oddělil formulář a pokud to není potřeba, tak bych ho asi ani neschovával do komponenty. To už je ale spíš věc filosofie a osobních preferencí.
- David Kudera
- Člen | 455
Souhlas s @Šaman , tedy kromě poslední věty, ale jak říká, je
to otázka osobních preferencí.. Ty moje jsou mít naprosto všechno
v komponentách. Jen já mám obvykle komponentu na výpis a potom jednu na
přidání a editaci dohromady. Ty formuláře mívám stejný, tak to nechám
v jedné komponentě. Stačí tam jedna podmínka: jestli mám entitu, naplň
formulář defaults a přes onSuccess
volej třeba
processUpdate
, jinak volej processInsert
.
Edit: a jeden presenter se 3 akcemi
Editoval David Kudera (16. 5. 2015 6:53)