![](/img/trans.png)
[英]mongodb with zf2 gives an error The class was not found in the chain configured namespaces
[英]Resque could not find job class ZF2 namespaces
嘗試在ZF2項目中使用Redis支持的PHP-Resque項目https://github.com/chrisboulton/php-resque 。 (適應性具體)
我遇到的麻煩是將ZF2命名空間和類組合在一起
例如 :
調節器
//Enqueue a worker
$args = array(
'name' => 'EMCP'
);
Resque::enqueue('default', 'phpresque\\V1\\Model\\MyResqueJob', $args);
MyResqueJob類別
namespace phpresque\V1\Model;
class MyResqueJob
{
public function perform()
{
// Work work work
echo "helloWorld";
}
}
resque給出的錯誤消息:
ubuntu@/zf2projectname/vendor/chrisboulton/php-resque$ QUEUE=* APP_INCLUDE=/zf2projectname/vendor/autoload.php VVERBOSE=1 php resque.php
** [03:01:37 2014-10-26] Sleeping for 5
** [03:01:42 2014-10-26] Checking default
** [03:01:42 2014-10-26] Found job on default
** [03:01:42 2014-10-26] got (Job{default} | ID: 38fa104b11de81731c15ba9c2f1853ab | phpresque\V1\Model\MyResqueJob | [{"name":"EMCP"}])
** [03:01:42 2014-10-26] Forked 30642 at 2014-10-26 03:01:42
** [03:01:42 2014-10-26] Processing default since 2014-10-26 03:01:42
** [03:01:42 2014-10-26] (Job{default} | ID: 38fa104b11de81731c15ba9c2f1853ab | phpresque\V1\Model\MyResqueJob | [{"name":"EMCP"}]) failed: Could not find job class phpresque\V1\Model\MyResqueJob.
** [03:01:42 2014-10-26] Checking default
編輯:我放棄使用Resque,但下面是關於它如何工作的建議。我最終使用SlmQueue代替了https://github.com/juriansluiman/SlmQueue
根據ZF2 github社區,應該執行以下操作:
您的APP_INCLUDE
環境var是否不應該包含作曲家的init_autoloader.php
的路徑? 僅包括autoloader類是不夠的,因為您沒有在任何地方配置和注冊autoloader。
和
YMMV,但是將ZF2應用程序集成到Resque中所做的工作是創建一個單獨的入口點腳本,該腳本在Resque worker的上下文中初始化ZF2應用程序:
<?php
// resque_context.php
require_once 'vendor/autoload.php';
$application = \Zend\Mvc\Application::init(include 'config/application.config.php');
$config = $application->getServiceManager()->get('config');
並通過APP_INCLUDE
環境變量提供它到Resque運行腳本的路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.