Существует ли способ отладки 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?



Если вы не понимаете моего вопроса, пожалуйста, покажите мне ваши сомнения.
1032   2  

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

    Ничего не найдено.