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

问题描述 投票:7回答:2

这是我的开发设置:

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)有办法将我的Consumer流程附加到我在PhpStorm + Xdebug中的当前调试吗?

如果你不明白我的问题,请告诉我你的疑惑。

php cakephp rabbitmq phpstorm xdebug
2个回答
5
投票

在Web上下文中,Xdebugs会话通常由名为XDEBUG_SESSION的Cookie触发。

在CLI上没有cookie,因此您必须告诉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中,只需通过电话听筒图标收听传入的连接。

它的工作很棒!


0
投票

Xdebug and RabbitMQ consumer commands

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.