PHP - печатать все операторы, которые выполняются в сценарии командной строки PHP? - PullRequest
2 голосов
/ 10 августа 2009

В python можно отслеживать все операторы, которые выполняются сценарием командной строки с использованием модуля trace . В bash вы можете сделать то же самое с set -x. У нас есть PHP-скрипт, который мы запускаем из командной строки, как обычный скрипт bash / python / perl / etc. Ничего не происходит.

Есть ли какой-нибудь способ отследить все выполняемые строки кода?

Ответы [ 3 ]

2 голосов
/ 10 августа 2009

Существует расширение PECL, apd , которое будет генерировать файл трассировки.

1 голос
/ 10 августа 2009

Не в чистом PHP, нет - насколько я знаю.

Но вы можете использовать отладчик; хороший способ сделать это с

  • Расширение Xdebug , которое можно использовать в качестве отладчика
  • и некоторая графическая среда IDE, в которую интегрированы некоторые средства отладки, например Eclipse PDT

Оба из них бесплатны, кстати.

С их помощью вы можете делать шаг за шагом, устанавливать точки останова, просматривать содержимое переменных, просматривать трассировки стека, ... И это работает как для Web-скриптов, так и для скриптов CLI; -)

Конечно, это означает, что Eclipse работает на компьютере, на котором вы выполняете свой сценарий ... Но если вы выполняете его на своем компьютере разработчика, у вас, вероятно, есть графический интерфейс и все такое, так что все должно быть хорошо ...
(я знаю, что для веб-приложений Eclipse может работать на другой машине, чем на веб-сервере PHP - хотя и не знаю, возможно ли это в CLI)


В качестве пояснения: возможно, вы можете интегрировать Xdebug с отладчиком на основе CLI; см. список поддерживаемых инструментов на странице, на которую я ссылался ранее.

0 голосов
/ 10 августа 2009

Я немного слеп, но думаю, что один из способов сделать это - написать весь соответствующий код внутри пользовательских функций и вызвать debug_backtrace () . debug_print_backtrace также может быть полезно.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...