Что такое dInspect и как его использовать?

Я очень заинтересован в @Sebastián Grignoli ответить на этот вопрос, но, когда я пытаюсь выполнить его, я получаю Fatal error: Class 'dInspect' not found.

Может ли кто-нибудь сказать мне, как исправить это? Спасибо.

Ответ 1

Когда я google, первый хит - это ссылка на отладчик NuSphere nusphere.com/products/php_debugger.htm, так как у меня его нет, похоже, что я SOL.

Ответ 2

Насколько я могу судить, это какой-то класс, который он сделал. Я googled, и единственное, что подходит для "php dInspect" - это вопрос. Я также искал функции-члены, называемые "дамп" в php-включенных библиотеках, и ничего не нашел.

Возможно, вы сможете немного изменить свой ответ, чтобы получить то, что вы хотите, он выглядит довольно полным. (Я ничего не тестировал)

Ответ 3

Здесь приведена упрощенная версия решения. Возможно, вы могли бы адаптировать его к вашим потребностям с меньшими проблемами:

function catch_param($label)
{
        $bt = debug_backtrace();
        $src = file($bt[0]["file"]);
        $line = $src[ $bt[0]['line'] - 1 ];

        // let match the function call and the last closing bracket
        preg_match( "#catch_param\((.+)\)#", $line, $match );

        /* let count brackets to see how many of them actually belongs 
           to the var name
           Eg:   die(catch_param($this->getUser()->hasCredential("delete")));
                  We want:       $this->getUser()->hasCredential("delete")
        */
        $max = strlen($match[1]);
        $varname = "";
        $c = 0;
        for($i = 0; $i < $max; $i++){
            if(     $match[1]{$i} == "(" ) $c++;
            elseif( $match[1]{$i} == ")" ) $c--;
            if($c < 0) break;
            $varname .=  $match[1]{$i};
        }

    // $varname now holds the name of the passed variable ('$' included)
    // Eg:   catch_param($hello) 
    //             => $varname = "$hello"
    // or the whole expression evaluated
    // Eg:   catch_param($this->getUser()->hasCredential("delete"))
    //             => $varname = "$this->getUser()->hasCredential(\"delete\")"

    echo("The passed expression is: ".$varname);

}

Если вам нужен класс проверки, это ссылка для загрузки:

http://download.inspect.jaku.com.ar/

Здесь приведен пример функции инспектора (и моего класса dInspect):

http://inspect.jaku.com.ar/

Тексты находятся на испанском языке на этой странице, но код является кратким и очень легким для понимания.