Laravel 5:从app配置文件中删除开发依赖项

时间:2015-05-18 11:44:23

标签: git laravel deployment composer-php

我使用git clone部署我的Laravel项目并使用git pull进行更新

它运行正常,但每次部署时,我都必须从config/app.php providers数组和aliases数组中删除开发依赖项,这很烦人且每次都{{1}它显示了我的错误,因为他没有找到开发包。

1 个答案:

答案 0 :(得分:3)

您可以根据laravel 5中的环境有条件地加载服务提供商和外墙。

服务提供商

服务提供商需要在/app/Providers/AppServiceProvider.php而不是config/app.php注册。

// AppServiceProvider.php

public function register()
{
    $this->app->bind(
        'Illuminate\Contracts\Auth\Registrar',
        'App\Services\Registrar'
    );

    if ($this->app->environment('production')) {
        $this->app->register('App\Providers\ProductionProvidersGoHere');
    } else {
        $this->app->register('App\Providers\DevelopmentProvidersGoHere');
    }
}

有关教程,请查看此处:https://mattstauffer.co/blog/conditionally-loading-service-providers-in-laravel-5

外墙

可以使用AliasLoader条件加载外墙。

/**
 * List of only Local Enviroment Facade Aliases
 * @var array
 */
protected $facadeAliases = [
    'Debugbar' => 'Barryvdh\Debugbar\Facade',
];

/**
 * Load additional Aliases
 * Base file Alias load is /config/app.php => aliases
 */
public function registerFacadeAliases()
{
    $loader = AliasLoader::getInstance();
    foreach ($this->facadeAliases as $alias => $facade)
    {
        $loader->alias($alias, $facade);
    }
}

以下是一个很好的教程:http://blog.piotrows.pl/en/laravel-5-load-serviceprovider-depend-on-env-file/

//编辑
增加了外墙: 感谢@ Sn0opr指点我。