1

我正在开发一个使用 codeigniter 框架版本 2.1.0 构建的遗留项目(是的,我知道它很旧)。我正在尝试将 Illuminate Queue 系统集成到 CI 中,并且做得很好。我遇到的问题是在侦听命令脚本从队列中拉出作业并调用类并在该类上执行 fire 方法时使用 CI 项。

是否可以在这样的名称和命名空间中使用 Codeigniter 项目?

这是命名空间区域的文件夹结构:

application
    MyApp
        Queues
            Listeners
                Exports
                     Exports.php

这是文件:

<?php namespace MyApp\Queues\Listeners\Exports;

use Aws\S3\S3Client;
use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\AwsS3 as Adapter;
use League\Flysystem\AdapterInterface;

class Exports
{

    public function __construct()
    {
        /* Load CI */
        $this->ci = & get_instance();
    }

    public function fire($job, $data)
    {
        // Process job
        $job->delete();
    }

}

这是它通过的错误消息:

PHP Fatal error:  Call to undefined function MyApp\Queues\Listeners\Exports\get_instance()

我知道这是因为 core/Codeigniter.php 文件没有被加载,因为它是在我的本地服务器后台运行的 CL 命令,并且没有通过打开框架的典型路径。

我问的可能吗?如果您需要任何进一步的信息,请告诉我。

谢谢!

4

1 回答 1

0

Illuminate 不能通过 Composer 获得吗?Phil Sturgeon 在这里写了一篇关于让 Composer 在 CI 中工作的好教程:http: //philsturgeon.uk/blog/2012/05/composer-with-codeigniter

于 2014-09-12T16:32:15.930 回答