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

Lui*_*rgo 7 php cakephp xdebug rabbitmq phpstorm

这是我的开发设置:

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中的当前调试吗?

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

mbl*_*ann 5

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

在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"
Run Code Online (Sandbox Code Playgroud)

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

它的工作很棒!