lens18316926_1313109705php-debugging

Класс для отладки. Может кому пригодится..

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 );

Вывод:

3

<?php
  
require_once( 'debug.class.php' );

$arVar = array (
          'ARRAY_1_PARAM' => '33740',
          'ARRAY_2' => 
          array (
            'ARRAY_2_PARAM' => '3212',
          )
      );
      
_c( $arVar, true );

Вывод:

4

Подписываемся на обновления блога по Email:

Введите адрес электронной почты



Метки: , ,

Оставьте свой комментарий