Поэтому я пишу API в php, и я хотел бы использовать инструмент отладки с полным набором услуг. то есть, устанавливать точки останова, просматривать трассировки стека, проверять переменные и т. д. Подобные вещи очень распространены в скомпилированных языках.
Я проверил xdebug, и после настройки его на работу с phpstorm (моей IDE), я был разочарован, обнаружив, что он работает только тогда, когда я run
изнутри phpstorm, а не когда я фактически обслуживаю реальные запросы API.
Чтобы добавить к этому дополнительную сложность, на самом деле api db размещаются в vagrant-экземпляре, поэтому, хотя я пишу и редактирую код на своей локальной машине, выполняемый код находится в vagrant-среде виртуальной машины.
Любой другой способ сделать это? Или я должен просто привыкнуть к чему-то вроде print_r();exit;
и перезапустить запрос?
Используйте XDebug и настройте его правильно. Вы можете настроить его для работы без запуска кода из PhpStorm довольно легко.
xdebug.remote_enable = on
xdebug.remote_connect_back = on
xdebug.idekey = "vagrant"
Убедитесь, что они установлены. Затем в PhpStorm есть нечто, похожее на значок телефона в правом верхнем углу (вместе с остальными компонентами отладки и запуска на панели инструментов). Убедитесь, что он весь зеленый (т.е. прослушивает соединения).
Вы можете использовать Xdebug для установки точек останова. Он даже будет работать с приложениями CLI, если вы настроите его правильно. Вы даже можете отлаживать код внутри виртуальных машин Vagrant или на удаленных серверах.
Вам просто нужно немного изучить, как настроить IDE. 😉
Больше деталей: http://www.sitepoint.com/install-xdebug-phpstorm-vagrant/
Это может пригодиться для вас: https://www.jetbrains.com/phpstorm/marklets/
И это: https://www.jetbrains.com/phpstorm/help/configuring-xdebug.html
Лучший инструмент для отладки PHP — Xdebug. http://xdebug.org/ вот домашняя страница.
Php xdebug
Посмотрите на этот пример: http://www.sitepoint.com/install-xdebug-phpstorm-vagrant/