PHP – печать всех операторов, выполняемых в скрипте командной строки PHP?

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

Есть ли способ получить след всех строк кода, которые выполняются?

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

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

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

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

Оба они свободны, кстати.

С их помощью вы можете шаг за шагом настраивать точки останова, просматривать содержимое переменных, просматривать трассировки стека … И он работает как для веб-скриптов, так и для CLI 😉

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

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

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

Я надеюсь, что это помогает.