Různý Error presenter pro různé moduly
- pave.kucera
- Člen | 122
Asi nepřicházím s ničím úplně novým, ale stejně… Pro zprovoznění stačí přidat události onRequest objektu Application následující funkci.
Aplikace pak bude při chybě (a Application::$catchExceptions = true) automaticky spouštět, pokud existuje, presenter Error v modulu, ve kterém se nachází presenter, jenž vyhodil výjimku. Pokud používate Nette bez jmenných prostorů, stačí nahradit „Nette\Application\InvalidPresenterException“ za „InvalidPresenterException“
- Filip Procházka
- Moderator | 4668
Šikovné (až na kompatibilitu k novému Nette). Lepší řešení asi nikoho nenapadá co? :)
Editoval HosipLan (14. 6. 2011 10:12)
- hAssassin
- Člen | 293
potvrzuji, zkusil sem si to pridat do Application a zda se ze to vali. Mam
vlastni tridu Application
, ktera dedi z
\Nette\Application\Application
:
Zatim to teda vali (resp. sem to zkousel) pouze pro dva hlavni moduly (admin
a front). Pokud vsak by bylo vic submodulu napr v modulu admin, tak to asi bude
tahat error presenter z admin modulu, ale to uz problem neni. Jo verzi nette
mam version 2.0.1 released on 2012-02-29
.
Kazdopadne diky za skveli napad…
EDIT: az ted sem si vsimnul, ze to je rok stare vlakno :D Ale co uz, hlavne ze to vali i v novym nette ;)
Editoval hAssassin (23. 3. 2012 20:04)
- one-two
- Člen | 80
ZZromanZZ napsal(a):
Mělo by fungovat to, že si injectuješ \Nette\Application\Application v BasePresenteru konkrétního modulu
to mi bohužel taky nefunguje. Buď to bere pouze ten co je v configu a pokud tenhle parametr zakomentuju, tak se spustí defaultní NetteModule\ErrorPresenter
- ZZromanZZ
- Člen | 87
To se mi nezdá. Mi to v dev verzi funguje dobře a myslím, že není důvod, proč by tobě nemělo. Máš dobře zadaný ten string(cestu) k errorPresenteru ? Mělo by to být nějak takto:
Když tak nastiň tvůj strom modulů a kde máš errorPresentery a možná ti už tady pomůžem.
// edit: A je to nutno zadávat bez počáteční dvojtečky
Editoval ZZromanZZ (12. 7. 2013 11:20)
- one-two
- Člen | 80
Mám FrontModule a ApiModule, třídy App\*Module\*Presenter, pokud zavolám v presenteru $this->error() tak už to teďkon správně zobrazuje příslušnej ErrorPresenter, ale pokud tam mam nějakej například fatal error, tak to zas začne zpracovávat ten výchozí, případně ten z configu