Класс для отладки. Может кому пригодится..
debug.class.php:
<?php
class Debug
{
public function dumpDisplay( $var, $break = false )
{
while(ob_get_length())
{
ob_end_clean();
}
ob_start();
$vars = func_get_args();
echo "<pre>";
foreach($vars as $var)
{
print_r($var);
echo '<hr size="1">';
}
echo "<B>Used memory</B>: ".number_format(memory_get_usage())." bytes\n";
echo "<B>Used real memory</B>: ".number_format(memory_get_usage(1))." bytes\n";
echo "<HR size=\"1\">\n";
echo "<B>Included files list</B>\n";
echo "<UL>\n";
foreach(get_included_files() as $i=>$v)
{
echo "<LI>#$i: $v</LI>\n";
}
echo "</UL>";
echo "<HR size=\"1\">\n";
echo "<B>Current resource usages</B>\n";
echo "<UL>\n";
foreach(getrusage() as $i=>$v)
{
echo "<LI>$i = $v</LI>\n";
}
echo "</UL>";
if(!isset($_SERVER['REQUEST_METHOD']))
{
die(strip_tags(ob_get_clean()));
}
if( $break ) die();
}
public function dumpInConsole( $var, $displayBacktrace = false )
{
$var = json_encode($var);
if( $displayBacktrace )
{
$backtrace = debug_backtrace();
$cp = $backtrace[2]["file"] . ", " . $backtrace[2]["line"];
}
$js = <<<JSCODE
\n<script>
if (! window.console) console = {};
console.log = console.log || function(name, data){};
console.log('$cp');
console.log($var);
</script>
JSCODE;
echo $js;
}
}
function _d()
{
$arg = func_get_args();
return call_user_func_array(
array('Debug', 'dumpDisplay'), $arg
);
}
function _c()
{
$arg = func_get_args();
return call_user_func_array(
array('Debug', 'dumpInConsole'), $arg
);
}
Использование:
require_once( 'debug.class.php' );
$arVar = array (
'ARRAY_1_PARAM' => '33740',
'ARRAY_2' =>
array (
'ARRAY_2_PARAM' => '3212',
)
);
_d( $arVar );
Вывод:
<?php
require_once( 'debug.class.php' );
$arVar = array (
'ARRAY_1_PARAM' => '33740',
'ARRAY_2' =>
array (
'ARRAY_2_PARAM' => '3212',
)
);
_c( $arVar, true );
Вывод: