[2009-05-01] Laděnka hlásí fatal errory

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8218
+
0
-

Dobrá zpráva, Laděnka nyní zachytává a vizualizuje i Fatal, parse a compile errory.

Thx Jakub Vrána!

Patrik Votoček
Člen | 2221
+
0
-

Tak to je super a jak se toho docílilo?

David Grudl
Nette Core | 8218
+
0
-

Kombinace error_get_last a register_shutdown_function. Žil jsem v představě, že to nefunguje, ale Jakub Vrána to včera implementoval a evidentně to funguje. Takže kolem toho našlapujte potichu, ať to funguje i nadále ;)

michalh
Člen | 22
+
0
-

Nepatří E_USER_ERROR také do shutdownHandler?
Netestoval jsem, pouze z nahédnutí do kodu: na produkčním by neměl být Fatal error potichu, ale vygenerovat 500 Internal server Error (pokud to funguje, prosím o smazání příspěvku :)

David Grudl
Nette Core | 8218
+
0
-

E_USER_ERROR se zachytí už dřív, přes errorHandler. Jinak 500 Internal server Error by mělo PHP generovat automaticky, ale pravda, až od verze 5.2.4, takže to tam doplním.

Ola
Člen | 385
+
0
-

Díky moc!

pmg
Člen | 372
+
0
-

Laděnčin prvomájový polibek? :-)

michalh
Člen | 22
+
0
-

David Grudl napsal(a):

E_USER_ERROR se zachytí už dřív, přes errorHandler. Jinak 500 Internal server Error by mělo PHP generovat automaticky, ale pravda, až od verze 5.2.4, takže to tam doplním.

ano, já jenom jestli by se neměla zachytit až v shutdownHandler a dále s ní pracovat jako se závažnější chybou (např. ta stránka 500)

sodae
Nette Evangelist | 250
+
0
-

Ahoj , nějak mi to nefuguje skusil jsem přesně co jsi zde ukázal a vypsalo mi to klasickým způsobem (tedy bez laděnky).
Soubor vypadá takto:

<?php
/* Expriment file */

require_once 'Debug.php';

Debug::enable();
Debug::enableProfiler();

echo $x[];

Kde se mohla stát chyba ?
php 5.2.6

David Grudl
Nette Core | 8218
+
0
-

Tohle mě taky původně zmátlo ;) Chyba nemůže být v souboru, ve kterém se volá Laděnka. Protože když tam je, tak PHP zařve dřív, než se vůbec vykoná první řádek, takže Laďěnka se vůbec nespustí.

Tomik
Nette Evangelist | 485
+
0
-

Jakube, děkujeme!

Editoval Tomik (6. 5. 2009 22:48)

vrana
Člen | 131
+
0
-

Davide, děkujeme!

Jak jako, „Davide“? :-)

sodae
Nette Evangelist | 250
+
0
-

Jakube děkujeme , tohle je práce spíše od Jakuba :) (viz SVN log)

Tomik
Nette Evangelist | 485
+
0
-

vrana napsal(a):

Jak jako, „Davide“? :-)

Promiň… :) Upravil jsem původní příspěvek. Díky!

Patrik Votoček
Člen | 2221
+
0
-

vrana napsal(a):

Davide, děkujeme!

Jak jako, „Davide“? :-)

To bude tím že spousta lidí je zvyklá na to že Nette = Dawídek (one-man show) ale Nette = Nette Foundation (many-man show + 2 girls) na to už si taky hodně lidí zvyklo ale na to že do SVNka komituje někdo další než Dawídek už ví hodně málo lidí (bude to tím že málo lidí čte commit logy).

edke
Člen | 198
+
0
-

Zachytenie pre fatal errors funguje skvelo v development environment. Slo by nejako implementovat, aby shutdownHandler v production smeroval napriklad exception na zadefinovany ErrorPresenter (ak je zadefinovany), ktory riadi prezentovanie chybovych hlasok v production ?

Jan Tvrdík
Nette guru | 2595
+
0
-

edke napsal(a):

Zachytenie pre fatal errors funguje skvelo v development environment. Slo by nejako implementovat, aby shutdownHandler v production smeroval napriklad exception na zadefinovany ErrorPresenter (ak je zadefinovany), ktory riadi prezentovanie chybovych hlasok v production ?

Obávám se, že Fatal error nelze prostě „přejít“ a spustit si v klidu ErrorPresenter.

David Grudl
Nette Core | 8218
+
0
-

Šlo by to, ale není to úplně triviální úloha, takže až časem.

wnc
Člen | 7
+
0
-

Nevím proč, ale musel jsem z bootstrapu odstranit

<?php
  $application->catchExceptions = TRUE;
?>

protože se to s tímto nastavením chovalo úplně nemožně a na většinu věcí vylepšená laděnka reagovala E500 bez dalšího vysvětlení. Bylo to vážně ke vzteku. Čím to je?

Honza Kuchař
Člen | 1662
+
0
-

wnc napsal(a):

Nevím proč, ale musel jsem z bootstrapu odstranit

<?php
  $application->catchExceptions = TRUE;
?>

protože se to s tímto nastavením chovalo úplně nemožně a na většinu věcí vylepšená laděnka reagovala E500 bez dalšího vysvětlení. Bylo to vážně ke vzteku. Čím to je?

https://forum.nette.org/…rorpresenter

Inza
Člen | 330
+
0
-

Jakube, jsi prostě borec!;-).. Díky moc!!!

Pánové je Vám jasné, že Nette Foundation začíná pomalu ale jistě upravovat php k obrazu svému? Když jsem na Poslední Sobotě mluvil žertem o vydání vlastního PHP, které by nemělo ty molochoidní neduhy toho současného byl to fakt žert…ale koukám že se to pomalu ale jistě začíná stávat relitou;-)..

phx
Člen | 651
+
0
-

Ono si udelat vlastni PHP (priohnout stavajici) by sice bylo pracne, ale nenemozne. Ale problem je, ze tos to nikde jinde nez na sve vlastni masine (serveru) asi nenasel. (cesky: hostingy by to nepodporovali) takze to asi zustane u zertu:)