<?php // ?>

praktyczne porady dotyczące programowania aplikacji internetowych

Debugging skryptów PHP

Do wyszukiwania błędów w skryptach PHP najlepiej jest korzystać z pliku log do którego można zapisywać wartości zmiennych korzystając z funkcji error_log. Problemem jest, gdy trzeba wydrukować jakąś tablicę lub obiekt. Do tego celu polecam poniższą prostą funkcję zamkniętą w klasę, której należy się odwołać w następujący sposób:

Debug :: _e (value, [in_max_level]);

gdzie:

value - to wartość do zapisu w pliku log dowolnego typu,

in_max_level - użyty jako opcjonalny parametr (w poniższym przykładzie ma domyślną wartość równą 4) spowoduje wstrzymanie wświetlania zagnieżdżonych tablic lub obiektów na wskazanym poziomie.

Funkcja:

class Debug
{
const _TAB_LENGTH = 4;

static public function _e ($value, $in_max_level = 4, $in_level = 0, $st_key = "")
{
if ($in_level > $in_max_level) {
error_log ("...");
return;
}

if (is_array ($value) || is_object ($value)) {
foreach ($value as $k => $v) {
$in_level++;
self :: _e ($v, $in_max_level, $in_level, $st_key . "-" . $k);
$in_level--;
}
}
else {
$st = "";
for ($i = 0; $i < $in_level * self :: _TAB_LENGTH; $i++) $st .= " ";
error_log ($st . $st_key . "-" . $value);
}
}
}

Michał Luberda - Wenecja listopad 2009