Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 独立Laravel队列不工作_Php_Laravel 5 - Fatal编程技术网

Php 独立Laravel队列不工作

Php 独立Laravel队列不工作,php,laravel-5,Php,Laravel 5,我试图在Laravel之外使用数据库驱动程序,但在解析名称空间时出错 $concrete的值为“db” $reflector = new ReflectionClass($concrete); 异常消息: Fatal error: Uncaught exception 'ReflectionException' with message 'Class db does not exist' in ..vendor\illuminate\container\Container.php on lin

我试图在Laravel之外使用数据库驱动程序,但在解析名称空间时出错

$concrete
的值为“db”

$reflector = new ReflectionClass($concrete);
异常消息:

Fatal error: Uncaught exception 'ReflectionException' with message 'Class db does not exist' in ..vendor\illuminate\container\Container.php on line 736
ReflectionException: Class db does not exist in ..vendor\illuminate\container\Container.php on line 736

我也在使用Illumb DB包,它工作正常,但此包引发异常。

需要手动解析DB连接并将此连接添加到队列管理器

从数据库管理器获取mysql连接:

$connection = Capsule::schema()->getConnection();
$container = new Container();
抓取队列管理器实例:

$manager = $queue->getQueueManager();
解析连接:

$resolver = new \Illuminate\Database\ConnectionResolver(['default' => $connection]);
将连接添加到队列管理器:

$manager->addConnector('database', function () use ($resolver) {
    return new DatabaseConnector($resolver);
});
完成了

还需要添加加密包

完整代码:

<?php
/**
 * Created by PhpStorm.
 * User: Dmitry
 * Date: 05.08.2015
 * Time: 19:32
 */

require_once "../vendor/autoload.php";
require_once '../db/db_inc.php'; // DB Capsule config

use Illuminate\Container\Container;
use Illuminate\Queue\Capsule\Manager as Queue;
use Illuminate\Database\Capsule\Manager as Capsule;
use Illuminate\Queue\Connectors\DatabaseConnector;

$connection = Capsule::schema()->getConnection();

$queue = new Queue();

$queue->addConnection([
    'driver'    => 'database',
    'table'     => 'jobs', // Required for database connection
    'connection' => 'default',
    'host'      => 'localhost',
    'queue' => 'default',
]);

$queue->getContainer()->bind('encrypter', function() {
    return new \Illuminate\Encryption\Encrypter('1111111111111111');
});
$queue->getContainer()->bind('request', function() {
    return new \Illuminate\Http\Request();
});

$manager = $queue->getQueueManager();
$resolver = new \Illuminate\Database\ConnectionResolver(['default' => $connection]);

$manager->addConnector('database', function () use ($resolver) {
    return new DatabaseConnector($resolver);
});

$queue->setAsGlobal();

Queue::push('SomeJobClass', ['parameters']);