Po aktualizace Nette přestala fungovat Laděnka

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

Ahoj, potřeboval bych opět pomoc.

Aktualizoval jsem Nette z rev. 108 na 142 a přestalo mi fungovat vypisování chyb. Nastavení debugu mám pořád stejné jako je v tutoriálu quickstart.

<?php
Debug::enable();
?>

Zkoušel jsem s tím různě experimentovat, co jsem se tu dočetl, ale podařilo se mi docílit pouze generování hlášek od Laděnky do souboru. Na obrazovku nevypíše nic.

V http hlavičce mám 500 Internal server error

Nevíte, prosím, co s tím?

David Grudl
Nette Core | 8218
+
0
-

Jj, pěkně jsem si tím zavařil na školení :-) Oprava se chystá.

David Grudl
Nette Core | 8218
+
0
-

Už je to snad v pořádku.

Jarda
Člen | 25
+
0
-

Updatnul jsem. Už se mi aspoň zobrazují normální php chybové hlášky na stránce (Fatal error: Call to undefined method Environment::getusert() in C:\xampp\htdocs\app\presenters\DashboardPresenter.php on line 20

Ale Laděnka mi hezký psaní zatim neposlala. Musí se u Debugu nastavit nějaká další direktiva?

Editoval Jarda (9. 12. 2008 17:31)

Jan Tvrdík
Nette guru | 2595
+
0
-

Fatal error nelze zachytávat.

Jarda
Člen | 25
+
0
-

aha, tak pardon…
To jsem zrovna zkusil vyvolat blbou chybu.
Výjimky to chytá a vypisuje už zase hezky Laděnkovsky.

Davide, díky za update!

piler
Člen | 111
+
0
-

mam este jeden dotaz k ladenke

<?php
# nastavenie ladenky
Debug::enable(E_ALL | E_STRICT);

# kod
$arr = Array(
	1 => 'first',
	2 => 'second'
);

print_r($arr['xx']);
?>

chcem vlastne vypisat neexistujuci prvok pola, ale toto ladenka nezachyti. Pouzivam kod ako myErrorHandler (z php.net):

<?php
function myErrorHandler($errno, $errstr, $errfile, $errline)
{

	switch($errno)
	{
		case E_USER_ERROR:
			echo "[$errno] My Error: <b>$errstr</b><br /><br />";
			echo '#'.$errline.' -'.$errfile;
			exit(1);
			break;

		case E_USER_WARNING:
			echo "<b>My WARNING</b> [$errno] $errstr<br />\n";
			exit(1);
			break;

		case E_USER_NOTICE:
			echo "<b>My NOTICE</b> [$errno] $errstr<br />\n";
			exit(1);
			break;

		default:
			echo "<b>Unknown error type</b>: [$errno]<br />";
			echo $errstr."<br /><br />\n";
			echo '#'.$errline.' -'.$errfile;
			exit(1);
			break;
	}

	/* Don't execute PHP internal error handler */
	return TRUE;
}

a ten tuto chybu zachyti. Treba este nieco nastavit v ladenke?
?>
David Grudl
Nette Core | 8218
+
0
-

Zachytit by se určitě měla. Nemůže skončit třeba v konzoli Firebugu, zalogovaná v souboru?

piler
Člen | 111
+
0
-

David Grudl napsal(a):

Zachytit by se určitě měla. Nemůže skončit třeba v konzoli Firebugu, zalogovaná v souboru?

No vyzera to tak, ze to FirePHP nejak zachytaval (???). Tak som ho vypol a dostal som hlasku

# kod

<?php
print_r($option['xxx']);
?>

# hlaska

Notice: Undefined variable: option in ...

Tak som to skusal este v Google Chrome a to iste. Ladenka to neodchytila.

Ale ked som skusil napr. trigger_error() tak to ladenka zachytila

Editoval piler (10. 12. 2008 15:01)

David Grudl
Nette Core | 8218
+
0
-

Jo takhle, ty chceš vidět červenou obrazovku. To se týká jen fatálních chyb, jako třeba nezachycená výjimka.

piler
Člen | 111
+
0
-

David Grudl napsal(a):

Jo takhle, ty chceš vidět červenou obrazovku. To se týká jen fatálních chyb, jako třeba nezachycená výjimka.

Takze to nie je mozne zachytit a zobrazit Ladenkou? Bolo by to mozno vhodne, hlavne ak som na produkcnom servri urobil chybu typu NOTICE, aby mi tato chyba dosla emailom.

Jan Tvrdík
Nette guru | 2595
+
0
-

piler napsal(a):

Takze to nie je mozne zachytit a zobrazit Ladenkou? Bolo by to mozno vhodne, hlavne ak som na produkcnom servri urobil chybu typu NOTICE, aby mi tato chyba dosla emailom.

Je to možné zachytávat do logu.

piler
Člen | 111
+
0
-

Jan Tvrdík napsal(a):

Je to možné zachytávat do logu.

Ale neposielaju sa teda NOTICE mailom? Alebo je to zbytocne? Mne by to celkom vyhovovalo, aby Ladenkak odchytavala tieto chyby a zobrazila, resp. poslala mailom.

David Grudl
Nette Core | 8218
+
0
-

Notice se posila emailem. Zkus

Debug::enable(NULL, 'phperror.log', 'admin@example.com');
piler
Člen | 111
+
0
-

David Grudl napsal(a):

Notice se posila emailem. Zkus

Debug::enable(NULL, 'phperror.log', 'admin@example.com');

Super, dik. Som si myslel, ze ked to ladenka nezachyti, tak to ani mailom neposiela.