我正在用git clone
部署Laravel的项目,并使用git pull
它可以正常工作,但是每次部署时,我都必须从config/app.php
providers
数组和aliases
数组中删除开发依赖性,这很烦人,每次我进行composer install --no-dev
时,都会向我显示错误,因为他没有找到Dev packages。
您可以根据Laravel 5中的环境有条件加载服务提供商和立面加载。
服务提供商
服务提供商需要在/app/Providers/AppServiceProvider.php
而不是config/app.php
中注册。
// AppServiceProvider.php
public function register()
{
$this->app->bind(
'IlluminateContractsAuthRegistrar',
'AppServicesRegistrar'
);
if ($this->app->environment('production')) {
$this->app->register('AppProvidersProductionProvidersGoHere');
} else {
$this->app->register('AppProvidersDevelopmentProvidersGoHere');
}
}
对于教程,请在这里查看:https://mattstauffer.co/blog/conditionally-loading-service-providers-in-laravel-5
外墙
可以有条件地加载AliasLoader
。
/**
* List of only Local Enviroment Facade Aliases
* @var array
*/
protected $facadeAliases = [
'Debugbar' => 'BarryvdhDebugbarFacade',
];
/**
* 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-load-service-serviceprovider-deveride-on-env-file/
//编辑
添加了立面:感谢 @sn0opr指向我。