SmartPresenterFactory – zvoľte si vlastnú konvenciu

- smasty
- Člen | 90
SmartPresenterFactory
SmartPresenterFactory je rozšírením základného Nette\Application\PresenterFactory. Poskytuje možnosť jednoducho si nakonfigurovať konvenciu pomenovania a umiestnenia Presenterov.
Download
- GitHub Gist: https://gist.github.com/1240447
Konfigurácia
SmartPresenterFactory je možné nakonfigurovať priamo v config.neon alebo v bootstrape.
service:
Nette\Application\IPresenterFactory:
factory: Smasty\Extensions\SmartPresenterFactory::register
option:
class:
prefix: App\
module: %sModule\
presenter: Presenters\%s
file:
prefix: ''
module: /%sModule
presenter: /presenters/%s.php
Nastavenia class slúžia na zostavenie názvu triedy daného
presenteru. Je možné nastaviť obecný prefix (teda napr. App\
pre oddelenie celej aplikácie do samostatného namespace),
namespace modulu a názov samotnej triedy presenteru.
%s slúži na dosadenie názvu presenteru, resp. modulu a je
spracované funkciou sprintf().
file nastavuje pravidlá pre zostavenie cesty k súboru
presenteru. V tomto prípade je vo volaní sprintf() dostupný aj
ďalší parameter – lower-case verzia názvu presenteru/modulu.
Všetky cesty automaticky začínajú v APP_DIR, nie je preto
nutné ho uvádzať ako prefix.
Bez uvedenia konfigurácie generuje SmartPresenterFactory rovnaké cesty ako základný Nette\Application\PresenterFactory. Je možné niektoré hodnoty neuviesť – v tom prípade sa použijú defaultné hodnoty.
Príklad
Pri hore uvedenej konfigurácii SmartPresenterFactory generuje nasledovné cesty/triedy:
| Presenter | Class | File |
|---|---|---|
| Homepage | App\Presenters\Homepage | APP_DIR/presenters/Homepage.php |
| Admin:Homepage | App\AdminModule\Presenters\Homepage | APP_DIR/AdminModule/presenters/Homepage.php |
| Admin:Pages:Edit | App\AdminModule\PagesModule\Presenters\Edit | APP_DIR/AdminModule/PagesModule/presenters/Edit.php |
Editoval smasty (25. 9. 2011 12:19)

- Filip Procházka
- Moderator | 4668
Jenom takovej malej rejpaneček :) koukni na array_replace_recursive

- smasty
- Člen | 90
HosipLan napsal(a):
Jenom takovej malej rejpaneček :) koukni na array_replace_recursive
Dík, fixed ;-)
Editoval smasty (26. 4. 2011 20:00)