【问题标题】:How to install mmoreramerino/GearmanBundle with Symfony 2.1.x?如何使用 Symfony 2.1.x 安装 mmoreramerino/GearmanBundle?
【发布时间】:2013-02-08 10:51:02
【问题描述】:

我对 Symfony 2 很陌生,对 Gearman 也很陌生。 我正在寻找将 Symfony 2 与 Gearman 集成的捆绑包。

mmoreramerino's bundle 似乎是 packagist 最流行的捆绑包。不幸的是,有些东西似乎坏了,自动加载器没有找到捆绑包。

Fatal error: Class 'Mmoreramerino\GearmanBundle\MmoreramerinoGearmanBundle' not found in ...

我尝试切换到“dev-development”,因为我从这个分支中修复的问题中得到了它,但它对我也不起作用。

问题:如何使用 Symfony 2.1.x 安装这个包? 问题 2:是否有任何可行且记录在案的替代方案?

编辑以防其他人遇到这个问题:这是我如何启动和运行它的!

  1. 安装 gearman、libgearman、PHP 的 PECL 扩展(使用最新版本!)
  2. 检查 gearman 是否出现在 phpinfo() 中(cli 和 webserver 版本)
  3. 使用“gearmand --verbose INFO”在终端 1 中启动 gearmand(您将看到工作人员和客户端连接到 gearman - 或不连接;-))
  4. 从 gearman php 扩展示例目录中的终端 2 reverse_worker.php 开始
  5. 从 gearman php 扩展示例目录中的终端 3 reverse_client.php 开始
  6. 如果这有效,您就可以使用 Symfony:使用“dev-development”安装 mmoreramerino/GearmanBundle
  7. 将 dev.base.yml 从包复制到 app/config/gearman/dev.yml
  8. 现在按照文档中的说明将 TestWorker.php 添加到您的包中
  9. 使用控制台脚本“php app/console gearman:job:execute MmoreramerinoGearmanBundleWorkerstestWorker~test”启用 testWorker
  10. 现在您可以将作业发送到 Symfony 控制器(或 Symfony 中的其他地方)中的监听 testWorker。虽然我使用的是默认主机/端口,但我必须指定服务器。

    $gearman = $this->get('gearman');
    $gearman->setServer('127.0.0.1',4730);
    $gearman->doNormalJob('MmoreramerinoGearmanBundleWorkerstestWorker~test');

【问题讨论】:

    标签: symfony gearman


    【解决方案1】:

    要安装捆绑包,您需要将以下行添加到composer.json

    "Mmoreramerino/GearmanBundle": "dev-development"
    

    并运行作曲家更新;

    然后在app/AppKernel.php注册(看来你已经这样做了)

    new Mmoreramerino\GearmanBundle\MmoreramerinoGearmanBundle(),
    

    【讨论】:

    • 当我通过 GearmanBundle 通过“php app/console cache:clear --no-warmup”清除 Symfony 缓存时,我收到一个错误“在路径中找不到设置文件”/vol/www /dsearch.dev/htdocs/dsearch/app/config/gearman/dev.yml" 这个文件应该是什么?
    • 哦,thanx,错过了......(我的致命错误问题可能发生在我开始使用 v01 时,并且可能仍然在任何地方缓存了一些东西......)。现在它几乎可以工作了,Symfony 声明“已弃用:GearmanClient::do(): Use GearmanClient::doNormal() in ../Service/GearmanClient.php line 111”。您是否在捆绑代码中为自己解决了这个问题?我在 Github 上看到不少 fork,可能是固定在那里的?
    • 在源代码中找到了 cmets 如何解决已弃用的警告。自我注意:RTFM ;-)
    猜你喜欢
    • 1970-01-01
    • 2012-08-18
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多