我是Symfony 2的新手,也是Gearman的新手。我正在寻找一个捆绑包,以集成Symfony 2与Gearman。
根据包装学家的说法,mmoreramarino的捆绑包似乎是最受欢迎的捆绑包。不幸的是,似乎有什么东西坏了,自动加载器找不到捆绑包。
Fatal error: Class 'MmoreramerinoGearmanBundleMmoreramerinoGearmanBundle' not found in ...
我试着切换到"开发",因为我从这个分支中修复了这个问题,但它对我也不起作用。
问题:如何使用Symfony 2.1.x安装此捆绑包?问题2:是否有工作&有记录的替代方案?
编辑如果其他人遇到这个问题:以下是我如何启动和运行它的!
- 安装gearman、libgearman和PHP的PECL扩展(使用最新版本!)
- 检查gearman是否显示在phpinfo()中(cli和webserver版本)
- 在终端1中使用"gearmand--verbose INFO"启动gearmand(您将看到工作人员和客户端连接到gearman-或不连接;-)
- 从gearmanphp扩展示例目录在终端2reverseworker.php中启动
- 从gearmanphp扩展示例目录在terminal 3 reverseClient.php中启动
- 如果这是有效的,那么您就可以使用Symfony了:使用"devdevelopment"安装mmoreramino/GearmanBundle
- 将捆绑包中的dev.base.yml复制到app/config/gearman/dev.yml
- 现在将TestWorker.php添加到您的捆绑包中,如文档中所述
- 使用控制台脚本"php-app/console gearman:job:execute MmoreramerinoGearmanBundleWorkerstestWorker~test"启用testWorker
现在,您可以将作业发送到Symfony控制器(或Symfony中的其他地方)中的侦听testWorker。虽然我使用默认的主机/端口,但我必须指定服务器。
$gearman = $this->get('gearman');
$gearman->setServer('127.0.0.1',4730);
$gearman->doNormalJob('MmoreramerinoGearmanBundleWorkerstestWorker~test');
要安装捆绑包,需要在composer.json
中添加以下行
"Mmoreramerino/GearmanBundle": "dev-development"
并运行composer更新;
然后在app/AppKernel.php
中注册(看起来你已经这样做了)
new MmoreramerinoGearmanBundleMmoreramerinoGearmanBundle(),