Php “拉雷维尔”;找不到类…”;运行artisan命令(但不运行composer)时

Php “拉雷维尔”;找不到类…”;运行artisan命令(但不运行composer)时,php,laravel,laravel-4,Php,Laravel,Laravel 4,我有一个应用程序,我已经工作了几个星期;我使用Vagrant+Homestead进行本地开发,使用Forge+Linode进行分期环境;直到几天前,我的工作流还可以正常工作,但是现在当部署脚本在Forge中运行时(特别是composer安装),它会收到一个错误: [运行时异常] 错误输出:PHP致命错误:在/home/vagrant/Sites/reputationhu中找不到类'Reputationhub\ReputationhubServiceProvider' 第157行的b/vendor

我有一个应用程序,我已经工作了几个星期;我使用Vagrant+Homestead进行本地开发,使用Forge+Linode进行分期环境;直到几天前,我的工作流还可以正常工作,但是现在当部署脚本在Forge中运行时(特别是
composer安装
),它会收到一个错误:

[运行时异常]
错误输出:PHP致命错误:在/home/vagrant/Sites/reputationhu中找不到类'Reputationhub\ReputationhubServiceProvider'
第157行的b/vendor/laravel/framework/src/illumb/Foundation/ProviderRepository.php
PHP堆栈跟踪:
PHP1。{main}()/home/vagrant/Sites/reputationhub/artisan:0
PHP2。require_once()/home/vagrant/Sites/reputationhub/artisan:30
PHP3。require()/home/vagrant/Sites/reputationhub/bootstrap/start.php:60
PHP4。Illumb\Foundation\ProviderRepository->load()/home/vagrant/Sites/reputationhub/vendor/laravel/framework/src/Illumin
ate/Foundation/start.php:210
PHP5。Illumb\Foundation\ProviderRepository->compileManifest()/home/vagrant/Sites/reputationhub/vendor/laravel/framework/
src/illumb/Foundation/ProviderRepository.php:57
php6。Illumb\Foundation\ProviderRepository->createProvider()/home/vagrant/Sites/reputationhub/vendor/laravel/framework/s
rc/illumb/Foundation/ProviderRepository.php:121
实际上,composer随后运行的子命令
php artisan clear compiled
失败了。如果我自己运行它,同样的问题。正在运行
composer安装--没有脚本
运行正常。
当我看
vendor/composer/autoload_classmap.php
时,它遗漏了所有的东西,而且只有几行长(通常要大得多),所以不管Laravel在做什么,都无法正确地找到正确的类

奇怪的是,运行
composer dump autoload-o
似乎可以解决这个问题;
autoload_classmap.php
文件会找到所有内容,应用程序运行正常,直到
php artisan…
尝试执行任何操作,然后它就会破坏应用程序

最终结果是Forge部署被破坏;我可以手动跳到服务器上并运行
composer dump autoload-o
来修复它,但这似乎是错误的

我想我对解决方案的研究已经相当透彻了,但到目前为止我什么也找不到,所以如果有任何帮助,我将不胜感激

更新:进一步澄清

这是拉威尔4.2

我的
composer.json
自动加载部分如下所示:

...
"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ],
    "psr-4": {
        "Reputationhub\\": "app/"
    },
    "files": []
},
...
...
'Reputationhub\ReputationhubServiceProvider',
...
<?php namespace Reputationhub;

use Reputationhub\EventSubscribers\MetricsEventSubscriber;
use Illuminate\Support\ServiceProvider;

class ReputationhubServiceProvider extends ServiceProvider {

...

}
提供者已添加到
app.php
中的“提供者”数组中,如下所示:

...
"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ],
    "psr-4": {
        "Reputationhub\\": "app/"
    },
    "files": []
},
...
...
'Reputationhub\ReputationhubServiceProvider',
...
<?php namespace Reputationhub;

use Reputationhub\EventSubscribers\MetricsEventSubscriber;
use Illuminate\Support\ServiceProvider;

class ReputationhubServiceProvider extends ServiceProvider {

...

}
我的提供者文件(位于app/Reputationhub/ReputationhubServiceProvider.php
)如下所示:

...
"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ],
    "psr-4": {
        "Reputationhub\\": "app/"
    },
    "files": []
},
...
...
'Reputationhub\ReputationhubServiceProvider',
...
<?php namespace Reputationhub;

use Reputationhub\EventSubscribers\MetricsEventSubscriber;
use Illuminate\Support\ServiceProvider;

class ReputationhubServiceProvider extends ServiceProvider {

...

}

这些问题似乎总是归结为字节码cachingPhil:你是说使用apc或opcache之类的东西?不幸的是,这两个都没有打开。