Vypnutí laděnky v presenteru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tomasn
Člen | 8
+
0
-

Můžu nějak vypnout laděnku pro konkrétní stránku přímo v presenteru?
<?php Nette\Environment::setProductionMode(false); ?>
Tohle mi nefunguje.

Editoval tomasn (7. 5. 2014 11:27)

tsusanka
Člen | 23
+
0
-

Můžeš dodat více info proč bys něco takového chtěl udělat?

j0hny
Člen | 33
+
0
-

Ahoj,

měl bych podobnou otázku – potřeboval bych si pro jednu metodu v presenteru definovat vlastní error handler (abych mohl odchytit a zalogovat errory a následně po sobě uklidit), nicméně pokud se pokusím nastavit si vlastní handler přes
<?php set_error_handler(function(…) {…}); ?>
bohužel se o slovo stále hlásí laděnka. Jedná se o metodu spouštěnou přes curl na pozadí a po jejím proběhnutí se volá $this->terminate(), tudíž je mi jedno, jestli se nastaví handler pouze pro tuto metodu nebo globálně pro celý běh daného scriptu.

j0hny
Člen | 33
+
0
-

Tak už jsem na to přišel:

nestačí pouze restore_error_handler();, je třeba zavolat i restore_exception_handler();.

Celý proces tedy vypadá takto:

<?php
restore_error_handler();
restore_exception_handler();
set_error_handler(function($errno, $errstr, $errfile, $errline) {
	throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
});
?>

Editoval j0hny (31. 10. 2014 11:51)

Milo
Nette Core | 1283
+
0
-

Odstraňovat handlery chyb a vyjímek Tracy nemusíš. Vlastní set_error_handler() pro odchycení chyb stačí. A pro zachycení vyjímky stačí obyčejné try {...} catch (...).

Azathoth
Člen | 495
+
0
-

nebylo by lepší si vyhazovat výjimky s nějakým kódem a v error presenteru si napsat, co to má dělat, když mu přijde výjimka s tím tvým kódem?

mkoubik
Člen | 728
+
0
-

BTW výjimky můžou implementovat interface – velice příjemné.