Zobrazování chyb, produkční mód, redscreen
- TheKronnY
- Člen | 22
Zdravím
zde je můj problém: nastavil jsem si vlastní renderování různých chyb
na určité typy Exceptionů v ErrorPresenteru
– do něj se
exception ovšem dostane pouze ve chvíli, kdy je v aplikaci
catchExceptions = true
. A v téhle chvíli, není možné
zobrazit redscreen ani v případě, že je vaše IP adresa
povolena v Debuggeru a Debugger je v módu Debugger::DEBUG
.
Ve chvíli, kdy zapnu Debugger do módu Debugger::PRODUCTION
popřípadě nechám na Debugger::DETECT
, aplikace
ErrorPresenter
ignoruje a zobrazuje chyby po svém, redscreen
ovšem uvidím.
Potřeboval bych vidět redscreen při chybě, pokud je má IP adresa
nastavená na debug mód a pro ostatní bych chtěl použít zobrazení
vlastních chyb přes ErrorPresenter
. Jak na to? :)
Díky,
TheKronnY
- David Matějka
- Moderator | 6445
Smazal si cache?
Jinak je taky mozne, ze pokud v produkcnim rezimu ignoruje errorPresenter a zobrazuje chyby „po svem“, tak mozna v tvem error presenteru doslo k chybe. koukni do slozky log
- TheKronnY
- Člen | 22
Ahh, pravda.
[2016-01-17 23-38-11] Nette\MemberAccessException: Cannot write to an undeclared property App\ErrorPresenter::$factory. in /var/www/.../public_html/vendor/nette/utils/src/Utils/ObjectMixin.php:209 @ ... @@ exception--2016-01-17--20-09--8cd751c500.html
Do ErrorPresenteru
se chtěly injectovat služby, pro které tam
nebyla proměnná, tudíž jsem ani nečekal že by se tam chtěly injectovat,
vzhledem k tomu, že ErrorPresenter
extenduje
Nette\Application\UI\Presenter
a ne BasePresenter
, ve
kterém jsou:
/** @var Translator @inject */
public $translator;
/** @var Model\Site @inject */
public $site;
/** @var Model\Config @inject */
public $config;
/** @var FormFactory @inject */
public $factory;
/** @var string @persistent */
public $lang;
Dík za tip.
Editoval TheKronnY (17. 1. 2016 23:51)