Queue :: push无法找到Class

时间:2017-05-31 23:07:41

标签: php laravel symfony octobercms

  • Laravel版本:5.1.46(LTS)
  • PHP版本:PHP 7.0.15-0ubuntu0.16.04.4(cli)(NTS)

说明

使用Queue::push让我在生产服务器上出现了一些麻烦:

$data = [
    'server' => $server,
    'week' => '201427'
];

Queue::push('\Cleanse\MyPluginName\Classes\Jobs\MyQueueClass', $data);
  

异常'ReflectionException'   消息'Class \ Cleanse \ MyPluginName \ Classes \ Jobs \ MyQueueClass不存在'   在/october/vendor/laravel/framework/src/Illuminate/Container/Container.php:741

它在我开发的本地Mac服务器上运行正常,但在上传到我的实时服务器后,我收到上述错误。

我也尝试过使用闭包,但我得到了:

Queue::push(function($job) use ($data) {
    $crawl = new RankingsUpdate();
    $crawl->updateWeek($data);

    $job->delete();
});
  

[2017-05-30 02:41:33] production.ERROR:   Symfony的\分量\调试\异常\ FatalThrowableError:   未找到类'Cleanse \ MyPluginName \ Classes \ CategoryDir \ CategoryClass'   /var/www/html/vendor/jeremeamia/SuperClosure/src/SerializableClosure.php(210):eval()'d代码:8

可能是PHP版本问题吗?它适用于我的MB Air,运行PHP 7.0.11(cli)(内置:2016年9月23日20:33:19)(NTS)

1 个答案:

答案 0 :(得分:2)

这是一个常见的陷阱,请确保您的文件夹名称是小写的。某些操作系统区分大小写。

例如,类\Cleanse\MyPluginName\Classes\Jobs\MyQueueClass应存储在名为plugins/cleanse/mypluginname/classes/jobs/MyQueueClass.php的文件中。