Ladíte v prohlížeči PHP aplikaci a potřebujete ji v jednom místě snadno zastavit a přehledně zobrazit všechny důležité informace jako:

  • právě volanou funkci
  • argumenty, které ji byly předané
  • lokální proměnné
  • call stack

A občas by se hodily i globální proměnné $_SERVER, $_COOKIES, HTTP hlavičky, apod.

Jak na to?

Tohle umí Laděnka neboli Tracy, dříve Nette\Diagnostics\Debugger. Pokud používáte Nette Framework, Laděnku už máte, protože je jeho nedílnou součástí.

Laděnku nejprve aktivujeme. Pro uživatele samostatné verze stačí zavolat:

ndebug();

(Uživatelé Nette Framework, aktivujte Debugger::$strictMode = true; a zavolejte Debugger::enable().)

Nyní v místě, kde chceme program přerušit a zobrazit všechny požadované informace, stačí napsat $stop():

	public function authenticate(array $credentials)
	{
		list($username, $password) = $credentials;
		$row = $this->users->where('username', $username)->fetch();
		$stop(); // tady se program přeruší

		...

Debugger vám přehledně ukáže místo, kde k přerušení došlo:

Všimněte si, že hodnotu lokální proměnné lze zobrazit tím, že na ni najedete myší. Cool!

Můžete si nastavit systém tak, aby při kliknutí na jméno souboru jej otevřel ve vašem oblíbeném editoru:

K dispozici je přehled všech proměnných, které byly funkci předány (pod záložkou Callstack):

A přehledně vypsané všechny lokální proměnné, složitější struktury můžete kliknutím rozbalit:

Samozřejmostí je celý call stack, opět s rozklikávacím pohledem do zdrojového kódu nebo předávaných proměnných. A také lze klikem na jméno souboru jej otevřít v editoru:

Níže najdete všechny informace o HTTP požadavku, počínaje hlavičkami přes cookies k GET/POST proměnným:

A nechybí ani pole $_SERVER, konfigurační direktivy, konstanty atd:

Dokáže tohle váš framework? 😉 Pokud ne, seznamte ho s Laděnkou.