这是我的开发设置:
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中的当前调试吗?
如果您不理解我的问题,请告诉我您的疑问。
答案 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)
运行cake cron message_trigger_consumer
不会在IDE中触发xdebug。要使PhpStorm知道连接,您需要在命令前添加环境变量:
PHP_IDE_CONFIG="serverName=example.com" cake cron message_trigger_consumer
将example.com
替换为适当的服务器名称。