Как я могу отлаживать скрипт PHP CLI с помощью xdebug?

Я не совсем понял это. Всякая документация, которую я нашел, описывает, как использовать xdebug для отладки скриптов, запущенных в Apache. Мне нужно отладить скрипт CLI php.

Так, например, как передать переменную XDEBUG_SESSION_START, чтобы получить xdebug?

Я специально пытаюсь отлаживать оболочку CakePHP. Поэтому, если у кого-то есть дополнительное понимание этого, я буду очень благодарен.

Благодарю.

Related of "Как я могу отлаживать скрипт PHP CLI с помощью xdebug?"

В руководстве Xdebug есть несколько заметок, например, например (цитирование):

export XDEBUG_CONFIG="idekey=session_name" php myscript.php 

Если вы используете Eclipse PDT для разработки и отладки ваших PHP-скриптов, между Apache или CLI нет большой разницы: конфигурация lloks совершенно одинакова, вам просто не нужно настраивать веб-сервер и не указывать URL-адрес; вместо этого вы должны указать путь к исполняемому файлу PHP.

О переменной XDEBUG_SESSION_START : ну, вы запускаете весь скрипт в режиме «debug-mode», поэтому, как я сказал бы, у вас нет понятия «отладка-сессия».

Например, вот что выглядит Window > Preference > PHP > PHP executables для меня прямо сейчас, и, справа, что я получаю, когда нажимаю кнопку « Edit первого:

http://img.ruphp.com/cakephp/1.png http://img.ruphp.com/cakephp/1-edit.png

И окно debug configurations :

http://img.ruphp.com/cakephp/2.png

И запуск отладки: он просто работает:

http://img.ruphp.com/cakephp/3.png

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

Иначе, с какими конкретными проблемами вы сталкиваетесь?

Если вы используете bash (или подобную оболочку), этот маленький скрипт может пригодиться:

 alias drush-debug=drd function drd { export XDEBUG_CONFIG="idekey=cli_session" export SERVER_NAME="developer.machine" export SERVER_PORT="9000" drush "$@" unset XDEBUG_CONFIG unset SERVER_NAME unset SERVER_PORT }; 

или, как это было предложено комментаторами ниже

 alias drd='XDEBUG_CONFIG="idekey=PHPSTORM" drush "$@"' 

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

просто добавьте следующий раздел в свой php.ini

 [XDebug] xdebug.max_nesting_level = 200 xdebug.remote_enable=1 xdebug.remote_port=9000 ;xdebug.profiler_enable=1 xdebug.idekey=PHPSTORM xdebug.remote_autostart=1 

и замените PHPSTORM на ваш ключ ide