Tracy a Error 500 – Tracy ignoruje nastavený ErrorPresenter
- Petr Kobelka
- Člen | 6
Zdravím,
narazil jsem na problém s Tracy.
Když si definuji vlastní ErrorPresenter, tak chci, aby dokázal odchytit i Chybu 500 a zobrazit šablonu takovou, jakou si sám nadefinuji. Když jsem zkoušel v presenteru $this->error(‚cosi‘, 500) tak vše ok, ale když nechám projít PHP chybnu, např. na nějaké proměné zkusím zavolat metodu (jako by ta proměnná byla objekt) tak to jde do kopru a veškereé mé snahy přebije tracy error template.
Nikde jsem ani nenašel info, jak bych jje mohl nakonfigurovat jinak, než že přímo zasáhnu do vendor/ kde je tracy uložená composerem, cž dle mého ale není správně.
Může někdo poradit, jak mám správně dodefinovat ErrorPresenter, nebo co mám udělat, aby tracy brutálně nezobrazovala svůj template?
- David Matějka
- Moderator | 6445
přebije tracy error template.
defaultni error template, nebo mas na mysli bluescreen?
V pripade, ze bluescreen a jsi v debug modu, tak je to OK. Pokud chces v debug modu nastavit zachytavani vyjimek error presenterem, musis nastavit
application: #pripadne jeste pod sekci nette pro <= 2.2
catchExceptions: true
V pripade, ze jsi v produkci a zobrazuje se ti defaultni error template, tak bych to videl na „An error occurred while executing error presenter“ nebo jak to je :) koukni do /log adresare…
- Petr Kobelka
- Člen | 6
Celý požadavek je v produkčním prostředí i v případě chyby 500 zobrazit vlastní stránku s hlášením chyby. To nejde. Chyby 400 i 404 jsou ok, ale zrovna 500 odmítá.
Catch Exception mam i nastaveny error presenter. Tenfunguje správne. Jen v případě programové chyby je ErrorPresenter ignorován a něco si tam cpe tracy
- Petr Kobelka
- Člen | 6
Nette 2.2+ :-(
Pořád to ale neřeší problém, že chci použít error presenter pro genertování výstupu uživateli (tedy že definovaný nepoužije a jde někam jinam).
- Petr Kobelka
- Člen | 6
nic, co by se týkalo Error presenteru. Je tam pouze chyba, kterou jsem zavedl, abych otestoval šablonu 500 pro error presenter, ale na tu nedojde, dokonce není ani error presenter volán – je zajímavé, že se tak děje pouze u chyby 500. Všude jinde (např. 400,404) to je ok.
- Petr Kobelka
- Člen | 6
teď se mi v jiném případě správně načetl ErrorPresenter pro chybu 500. Jestli správně chápu ty rozdílné situace, pak ten rozdíl je v tom, že nyní to byla vyjímka z Nette formuláře, zatím co předtím to byla PHP chyba (která se zatím nevyhazuje jako vyjímka :-( – musíme vyčkat PHP7)
- j0hny
- Člen | 33
Zdravím, už jse to sice starší vlákno, nicméně mám stejný problém. V configu nastavený správně error presenter i catchExceptions, nicméně při 500 errorech se zobrazuje pořád šablona z Tracy a vůbec se nezavolá error presenter. Ostatní chyby (4xx) fungují správně, jen pětistovka se chová takto. Verze nette je 2.2.0
- David Grudl
- Nette Core | 8218
Pravděpodobně i samotný error presenter vyhazuje chybu 500. Dědí od nějakého BasePresenteru? Tahá něco z databáze apod?