Распечатать выполненный код PHP (путь принятого кода) - PullRequest
2 голосов
/ 13 декабря 2010

У меня есть сценарий с множеством вложенных включений и функций, вызывающих друг друга из множества условий if. По сути, это кошмар кодирования.

Можно ли как-то "ПЕЧАТЬ" исполняемый код PHP? Я имею в виду, вывести фактический поток кода и путь, пройденный сценарием от начала до конца?

Ответы [ 3 ]

2 голосов
/ 13 декабря 2010

PHP не может сделать это из коробки. Вам нужно установить расширение xDebug на ваш компьютер для разработки PHP. После установки вы можете использовать функцию покрытия кода , чтобы определить, какие строки были выполнены.

Не имея этого, я бы создал простую функцию отладки для включения в начало вашего кода

public function myDebugString($string)
{
    file_put_contents('/tmp/debug.log',"$string\n",FILE_APPEND);
    return;
}

, а затем добавьте вызовы по всему этому коду

myDebugString('Called at ' . __LINE__);

А затем создайте файл журнала. Удаление операторов отладки - простая операция поиска / замены для вашего редактора, как только вы закончите.

Многие фреймворки имеют отладочные объекты, которые работают намного больше, чем это построено, но если вы имеете дело с автономным кодом, чего-то простого, такого как этот, должно быть достаточно, чтобы помочь вам.

2 голосов
/ 13 декабря 2010

Вы можете попробовать debug_backtrace () или debug_print_backtrace () .

Кроме того, я рекомендую использовать Xdebug ,Он печатает очень полезную трассировку стека для исключений (вы можете настроить его для распечатки каждого параметра метода и каждой локальной переменной (xdebug.collect_params=4 и xdebug.show_local_vars=on параметры конфигурации).

0 голосов
/ 13 декабря 2010

Взгляните на покрытие кода инструментов. Это позволяет идентифицировать те функции и строки кода, которые фактически выполняются при запуске скрипта

...