Php Laravel 4.2在编写器更新之前包含提供程序

Php Laravel 4.2在编写器更新之前包含提供程序,php,laravel,laravel-4,composer-php,Php,Laravel,Laravel 4,Composer Php,我有一个自定义的Laravel模块,我写了这个模块,并将其包含在我的app.php中,如下所示: 'providers' => array( 'Illuminate\Foundation\Providers\ArtisanServiceProvider', 'Illuminate\Auth\AuthServiceProvider', 'My\Custom\Provider' ); 每次我运行composer时,都会更新它的暂

我有一个自定义的Laravel模块,我写了这个模块,并将其包含在我的app.php中,如下所示:

    'providers' => array(
        'Illuminate\Foundation\Providers\ArtisanServiceProvider',
        'Illuminate\Auth\AuthServiceProvider',
        'My\Custom\Provider'
    );
每次我运行composer时,都会更新它的暂停,表示我的类不可用:

Error Output: PHP Fatal error:  Class My\Custom\Provider  not found in ProviderRepository.php on line 157
必须有办法让我的提供者在应用程序配置中,并且仍然能够运行composer update,否则自动部署我的代码真的很困难吗

编辑 我现在所做的是从app.php对提供程序进行注释,运行composer update,然后重新启用提供程序,一切正常

编辑 这是我的bootstrap/start.php环境

$env = $app->detectEnvironment(array(
    // Dev environments
    'dev' => array('dev.xxx.com'),

    // Live server catch
    'live'  => array('live.xxx.com'),

    // EU Server catch
    'eu.west.1.live' => array('eu-west-1.xxx.com'),

    // US server catch
    'us.west.1.live' => array('us-west-1.xxx.com'),

    // Local test environments
    'chris' => array('outrunthewolf-MacBook-Air', 'e7180623aa2e', 'precise64'),

    // Local catch
    'dev' => array('*')
));
和我的自动加载从作曲家

    "autoload": {
    "classmap": [
        "app/commands",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests"
    ],
    "psr-4": {
        "": "app/controllers/",
        "": "app/libraries/",
        "Model\\": "app/models/"
    }
},

我想提出一些解决这个问题的方法。 1.请确保提供者名称中没有输入错误,并且名称空间是正确的,如注释中的“Quasdunk”所示。 2.如果您的计算机上安装了composer,请执行以下命令:

composer dump-autoload  

它将自动加载您的所有类。它可能会对您有所帮助。

您是否绝对100%确定提供程序名称中没有输入错误,并且名称空间正确(甚至可能缺少一个大写字母)?是的。请仔细检查。好的,您是否设置了多个环境?确保您的提供商在所有这些服务中都存在。我记得L4.2中有一个奇怪的小错误,我的特定于环境的文件没有与主文件正确合并(只涉及像提供者这样的嵌套数组),所以我将所有提供者和外观复制粘贴到每个特定于环境的文件中。我不知道问题是否仍然存在,但也许您可以试一试。如果这是一个开发依赖项,并且您不希望它出现在您的生产环境中,请尝试运行
composer安装--no dev--no scripts
php artisan optimize--env=“production”
php artisan migrate--force--env=“production”
在生产端。将提供商添加到所有应用程序配置中,但这并不能解决任何问题。不过,我确实希望在我的生产环境中使用它。是的,我通常在完成作曲家更新后运行它。但我无法首先完成作曲家的更新。