PHP отладчик для Vim: отладка сценариев командной строки - PullRequest
3 голосов
/ 24 ноября 2011

Мой отладчик vim требует, чтобы я установил файл cookie Xdebug в моем браузере, добавив ?XDEBUG_SESSION_START=1, после чего я могу начать отладку.

Но я не могу установить этот cookie / сеанс при вызове скрипта в CLI.

Как отладить php-скрипты командной строки с помощью vim?

Ответы [ 2 ]

5 голосов
/ 26 июля 2013

Я не нашел все кусочки этой головоломки в одном удобном месте, поэтому вот мое чуть более полное решение.Это работает для меня с vim 7.3, xdebug 2.0.

  1. Получить плагин vim отладчика

    • Файл debugger.py идет в.vim / plugins, который патоген не выполняет автоматически.
    • Используйте F5 для запуска vim прослушивания входящих подключений xdebug (по умолчанию порт 9000)
  2. Используйте правильные настройки, связанные с xdebug в php.ini (возможно, используйте альтернативный php.ini).:

[Zend]
zend_extension = /full/path/to/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_port =9000
xdebug.remote_host = localhost
; We have to turn on remote_autostart when running php from
; cli.  That's probably a good reason to keep the cli and apache
; versions of php.ini distinct.
xdebug.remote_autostart=1
; idekey can be just about anything, but the value in php.ini needs
; to match the value used in the environment that launches php. 
xdebug.idekey=vim_session
  1. При запуске phpсценарий из командной строки, предустановка среды idekey var в виде

export XDEBUG_IDEKEY = "idekey = vim_session"

  1. НажмитеF5 в vim для запуска прослушивания на remote_port

  2. В оболочке со значением XDEBUG_IDEKEY запустите php с "php {scriptname}"

Таким образом, php загружает php.ini, находит расширение xdebug.so, которое инициализируется этими настройками php.ini.Расширение xdebug перехватывает выполнение скрипта и пытается подключиться к localhost: 9000, где прослушивает расширение vim + python.Как только соединение установлено, расширение xdebug координирует сеанс отладки, а плагин vim создает несколько окон ide-like отладки.Вуаля!

Бонусная ссылка: Я также использую этот скрипт t для запуска php.Он ожидает, пока vim не обнаружит порт отладки, а затем запускает сеанс php.По завершении он печатает код результата и возвращается к следующему циклу (если, конечно, вы не нажмете Ctrl + C).

0 голосов
/ 24 ноября 2011

Я думаю, вы найдете ответ в документации (поиск Starting The Debugger).

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