Mapping – moduly + viacero presenterov
- Creator13
- Člen | 21
Ahojte, nedari sa mi spojazdnit nasledovna funkcnost
Router
Application
Presenters sa nachadzaju:
Templates sa nachadzaju:
Routa admin/test/ mi najde presenter, ale routa admin/test/add/ mi nenajde presenter.
Routa admin/test/add/ mi funguje iba v pripade, ze ju mam v zlozke TestAdd
Je mozne mat viacero presenterov v zlozke Test? TestPresenter, TestAddPresenter, TestUpdatePresenter?
Viem, ze by som mohol mat viacer actions v presenteri TestPresenter, ale to nechcem.
Strukturu adresarov pre admin modul by som chcel mat vo finale nasledovnu:
Kazdy adresar by obsahoval viacero presenterov.
Diky za rady.
- Creator13
- Člen | 21
m.brecher napsal(a):
@Creator13
Je mozne mat viacero presenterov v zlozke Test? TestPresenter, TestAddPresenter, TestUpdatePresenter?
Jde to, nějak takhle:
Vdaka za navedenie. Podarilo sa mi rozbehat takuto variantu:
Su tam cesty na zlepsenie, resp. zjednodusenie tohto zapisu?
Je moznost to vsetko udrzat pod modulom Admin?
- m.brecher
- Generous Backer | 889
Ahoj,
Já jsem po různém hledání nakonec dospěl k systému organizace presenterů a modulů takto:
- moduly v samostatných složkách v hlavní složce /Modules,
- presentery v podsložkách ve složkách modulu společně se všemi ostatními soubory, které presentery používají
- s výjimkou modelových tříd, ty mám stranou.
- každý modul má vstupní presenter Home
- šablony akcí presenterů mají prefix jména presenteru – pletly se mě šablony v různých presenterech
Velice podobný systém bude nyní podporovat Nette viz nedávný příspěvku na fóru https://forum.nette.org/…h-adresarich#…
v aktuální verzi Nette mapuji takto:
v příštích verzích Nette se to zjednoduší:
adresářová struktura:
Modul Front je vždy veřejně přístupný a zde umisťuji přihlašování popř. obnovu hesla – akce pro nepřihlášené uživatele. Ostatní moduly jsou zpravidla vždy pro přihlášené. Moduly takto mají stejnou autorizaci, což je přehledné a z hlediska bezpečnosti optimální.
Tento systém členění adresářů používám ve všech projektech stejný, nezanořuji moduly do sebe, ale v url je možné přidat nějaký sjednocující prefix.
Formuláře a komponenty nikdy neumisťuji dovnitř presenterů, ale vždy je mám jako samostatnou třídu v samostatném souboru. Potom jsou presentery jednoduché a není problém v presenteru použít větší počet komponent/formulářů.
Více presenterů v jednom adresáři ??
Doporučuji spíš jít cestou komponent, v adresáři presenteru mít vždy jen jeden presenter, který obsahuje více komponent a ty spouští v různých akcích. Tímto způsobem lze přirozeně seskupit funkce, které spolu souvisí a projekt je přehlednější a UI pro uživatele čitelnější.
Editoval m.brecher (18. 4. 2024 12:12)
- Václav Pávek
- Backer | 102
@mbrecher a jak řešíš, kdy máš jednu komponentu použitou ve více presenterech?
- David Grudl
- Nette Core | 8253
@mbrecher základní strukturu mám podobnou, jen jména šablon neprefixuju, ono si s tím dobře poradí IDE (včetně hledání). To jsou taby v PhpStorm:

Moduly klidně zanořuju, pokud mám modul Blog, tak ho dělím na Front a Admin.
U pár projektů mi přirozeně vzniklo dělení podle domén, takže místo
presenterů Poll
v modulech Front
a
Admin
mám modul Poll
s presentery
Poll\Vote
(front) a Poll\Results
(admin).
Ještě jedna věc: mě vždycky vytáčela podobnost slov model
a modul
, protože místo Modules
používám
UI
:-)
- m.brecher
- Generous Backer | 889
@VáclavPávek
jak řešíš, kdy máš jednu komponentu použitou ve více presenterech?
To není moc časté, ale stává se to, potom pokud je komponenta použitá ve 2 presenterech tak jeden presenter je pro komponentu domovský, tam je umístěná a druhý si ji „půjčí“ ze sousedního presenter adresáře. Pokud je komponenta použitá častěji, tak ji umístím do App/Components, kde jsou komponenty používané napříč aplikací a komponenty pro layout (BasePresenter).