有没有办法使用PhpStorm和Xdebug调试RabbitMQ Consumer(php-ampqlib)?

时间:2015-10-29 14:08:30

标签: php cakephp rabbitmq phpstorm xdebug

这是我的开发设置:

IDE: PhpStorm 9.0.2
调试器: Xdebug 2.3.3
Message Queue Server: RabbitMQ 3.5.6
PHP Lib连接到RabbitMQ服务器: php-ampqlib

为了启动我的消费者,我正在使用CakePHP任务并运行如下:

  

../ lib / Cake / Console / cake cron message_trigger_consumer

当我运行此命令时,我的消费者已启动并等待消息,该消息将来自生产者(例如:发送确认电子邮件的保存表单按钮)。在此之前,一切都很好,但我的两个问题是:

1)有没有办法调试消费者?在我看来,消费者处于不同的过程,这就是Xdebug无法调试的原因。 2)有办法将我的消费者进程附加到我在PhpStorm + Xdebug中的当前调试吗?

如果您不理解我的问题,请告诉我您的疑问。

2 个答案:

答案 0 :(得分:5)

在Web上下文中,Xdebugs会话通常由名为char ch = temp.charAt(0); char ch1 = temp.charAt(1); char ch2 = temp.charAt(2); 的Cookie触发。

在CLI上没有cookie,因此您必须告诉xdebug手动启动会话:

XDEBUG_SESSION

然后在PHP Storm中,只需通过电话听筒图标收听传入的连接。

它的工作很棒!

答案 1 :(得分:0)

Xdebug和RabbitMQ使用者命令

运行cake cron message_trigger_consumer不会在IDE中触发xdebug。要使PhpStorm知道连接,您需要在命令前添加环境变量:

PHP_IDE_CONFIG="serverName=example.com" cake cron message_trigger_consumer

example.com替换为适当的服务器名称。