Как я могу отлаживать PHP CLI script с помощью xdebug?
Я не совсем понял это. Всякая документация, которую я нашел, описывает, как использовать xdebug для отладки скриптов, запущенных в Apache. Мне нужно отладить php CLI script.
Так, например, как передать переменную XDEBUG_SESSION_START, чтобы получить xdebug для нажатия?
Я специально пытаюсь отлаживать оболочку CakePHP. Поэтому, если у кого-то есть дополнительное понимание этого, я был бы очень благодарен.
Спасибо.
Ответы
Ответ 1
В руководстве по Xdebug есть пара замечаний, например, (цитирование):
export XDEBUG_CONFIG="idekey=session_name"
php myscript.php
Если вы используете Eclipse PDT для разработки и отладки ваших PHP-сценариев, между Apache или CLI нет большой разницы: конфигурация выглядит совершенно одинаково, вам просто не нужно ни настраивать веб-сервер, ни указывать URL; вместо этого вы должны указать путь к исполняемому файлу PHP.
О переменной XDEBUG_SESSION_START
: ну, вы запускаете весь сценарий в "режиме отладки", поэтому у вас нет понятия "сеанс отладки", я бы сказал.
Например, вот как выглядит Window > Preference > PHP > PHP executables
для меня прямо сейчас, а справа - что я получаю, нажимая на кнопку Edit
первой:
(источник: pascal-martin.fr)
(источник: pascal-martin.fr)
И окно debug configurations
:
(источник: pascal-martin.fr)
И запуск отладки: это просто работает:
(источник: pascal-martin.fr)
Надеюсь это поможет :-)
Иначе, с какой конкретной проблемой вы сталкиваетесь?
Ответ 2
Если вы используете bash (или подобную оболочку), этот маленький script может пригодиться:
alias drush-debug=drd
function drd {
export XDEBUG_CONFIG="idekey=cli_session"
export SERVER_NAME="developer.machine"
export SERVER_PORT="9000"
drush "[email protected]"
unset XDEBUG_CONFIG
unset SERVER_NAME
unset SERVER_PORT
};
или, как было предложено комментаторами ниже
alias drd='XDEBUG_CONFIG="idekey=PHPSTORM" drush "[email protected]"'
Таким образом, вам не нужно вручную устанавливать и отключать триггерную переменную каждый раз, когда вы хотите отлаживать.
Ответ 3
просто поставьте следующий раздел в свой 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