Jmenné prostory uvnitř aplikace
- Jan Jakeš
- Člen | 177
V souvislosti s chystanou změnou namespaces uvnitř Nette bych ještě rád zavedl diskusi na téma jak Nette zachází se jmennými prostory aplikace.
Aktuální stav: Nette používá namespaces pro moduly,
přičemž pro modul Admin
hledá presenter
AdminModule
. Pokud vím, tak je to vše a ani zde není prostor pro
žádné nastavení.
O co jde: Osobně např. na modelové vrstvě aplikace používám namespaces ve stylu:
App\Model\Entities
App\Model\Repositories
App\Model\Proxies
atd.
Rád bych něčeho podobného dosáhl např. i u presenterů:
App\Presenters\Homepage
U presenterů bych navíc klidně zrušil vynucování slova
Presenter
v názvu třídy. Podle mě je to v namespaces verzi
zbytečné.
Problém pak nastává u modulů:
App\AdminModule\Presenters\Homepage
?App\Modules\Admin\Presenters\Homepage
?
nebo nějak jinak?
Obecně si myslím, že by bylo dobré mít v tomto nějaký doporučený
scénář, ale také možnost snadno ho změnit. Tedy například mít
k dispozici nějaké metody ve stylu
$application->setNamespace()
nebo
$application->setPresentersNamespace()
, apod.
Co si o tom myslíte?
- Jan Jakeš
- Člen | 177
Honza Marek napsal(a):
Můžeš si napsat vlastní IPresenterFactory
Jasně, já se ale ptám hlavně na to, jestli by se nevyplatilo podporovat toto přímo v Nette. Nebo tobě připadá současný stav ideální?
Editoval Juan (5. 4. 2011 11:22)
- Filip Procházka
- Moderator | 4668
PresenterFactory + registry na prefixy + Presenter::formatLayoutTemplateFiles + Presenter::formatTemplateFiles
Nepříjde mi to jako tak zásadní feature, aby to muselo být přímo v FW, ikdyž…