Существует ли способ отладки RabbitMQ Consumer (php-ampqlib) с помощью PhpStorm и Xdebug?
Вот моя настройка dev:
IDE: PhpStorm 9.0.2
отладчик: Xdebug 2.3.3
сервер очереди сообщений: RabbitMQ 3.5.6
PHP Lib для подключения к серверу RabbitMQ: php-ampqlib
Для запуска моего потребителя я использую задачу CakePHP и выполняю ее следующим образом:
../lib / Cake / Console/cake cron message_trigger_consumer
Когда я выполняю эту команду, мой потребитель встает и ждет сообщения, которое придет от производитель (например: кнопка сохранить форму, которая отправляет электронное письмо с подтверждением). Пока здесь все в порядке, но мои два вопроса:
1) Существует ли способ отладки потребителя? На мой взгляд, потребитель находится в другом процессе, поэтому Xdebug не может его отладить
2) Есть ли способ прикрепить мой потребительский Процесс к моей текущей отладке в PhpStorm + Xdebug?
Если вы не понимаете моего вопроса, пожалуйста, покажите мне ваши сомнения.
2 ответов:
В веб-контексте сеансы Xdebugs обычно запускаются файлом Cookie с именем
XDEBUG_SESSION.На CLI нет куки, поэтому вам придется сказать xdebug, чтобы начать сеанс вручную:
export PHP_IDE_CONFIG="serverName=your-server-name-configured-in-php-storm" export XDEBUG_CONFIG="remote_host=ip_of_php_storm_pc idekey=PHPSTORM"Тогда в PHP Storm просто слушайте входящие соединения через значок телефона.
Его работа великолепна!
Потребительские команды Xdebug и RabbitMQ
Запуск
cake cron message_trigger_consumerне вызывает xdebug в IDE. Чтобы заставить PhpStorm знать о соединении, вам нужно префиксировать команду переменной окружения:
PHP_IDE_CONFIG="serverName=example.com" cake cron message_trigger_consumerЗамените
example.comсоответствующим именем сервера.
Comments