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)