EN | CS | Přihlásit | Registrovat

Firebug

Komunikace Nette\Debug a Firebugu dává vývojářům možnost zasílat zprávy samostatným kanálem, mimo okno prohlížeče. Chyby úrovně E_NOTICE a E_WARNING jsou do okna Firebugu tedy zasílány automaticky. Taktéž je možné logovat výjimky, které sice aplikace zachytila, ale stojí za to na ně upozornit. Firebug konzole se také výborně hodí pro ladění AJAXových aplikací.

  1. je vyžadován Firefox verze 2 nebo 3
  2. stáhněte si rozšíření Firebug
  3. stáhněte si rozšíření FirePHP (minimálně ve verzi 0.2)
  4. zapněte si FirePHP v FirePHP menu a aktivujte Firebug Net panel

Protože Nette\Debug komunikuje s Firebugem přes HTTP hlavičky, je nutné volat logovací funkce ještě před tím, než PHP skript cokoliv vypíše. Také je možné zapnout output buffering a tím výstup oddálit.

use Nette\Debug;

// vypíšeme řetězec do konzoly Firebugu
Debug::fireLog('Hello World');

// ke zprávám je možné přidat indikátor:
Debug::fireLog('Info message', Debug::INFO);
Debug::fireLog('Warn message', Debug::WARN);
Debug::fireLog('Error message', Debug::ERROR);

// do konzoly lze vypsat i pole nebo objekty:
Debug::fireLog($_SERVER);

Konzola podporuje i speciální typ tabulky:

Debug::fireLog(
array('2 SQL queries took 0.06 seconds', // table title
array(
array('SQL Statement', 'Time', 'Result'), // table header
array('SELECT * FROM Foo', '0.02', array('row1', 'row2')), // 1. row
array('SELECT * FROM Bar', '0.04', array('row1', 'row2')) // 2. row
)
), 'TABLE');

Nebo lze do logu poslat výjimku:

try {
throw new Exception('Test Exception');
} catch(Exception $e) {
Debug::fireLog($e);
}

Výsledek vypadá asi takto:

Kromě konzole lze vypisovat proměnné do záložky „Server“ pod záložkou „Net“. Zde je připraven inspektor, který umí rozbalovat a sbalovat jednotlivé větve proměnné. Každé dumpované proměnné musí být přiřazen jedinečný klíč (druhý parameter):

$arr = array(10, 20,
array('key1' => 'val1', 'key2' => TRUE)
);

Debug::fireDump($arr, 'My var');

Což v prohlížeči vypadá takto:

Viz také:


Login to submit a comment