Laravel 5: 从应用程序配置文件中删除开发依赖项
Laravel 5: Remove development dependancies from app config file
我正在使用 git clone
部署我的 Laravel 的项目并使用 git pull
进行更新
它工作正常,但每次部署时,我都必须从 config/app.php
providers
数组和 aliases
数组中删除开发依赖项,这很烦人,每次我这样做 composer install --no-dev
,它向我显示错误,因为他没有找到开发包。
您可以根据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 指点我。
我正在使用 git clone
部署我的 Laravel 的项目并使用 git pull
它工作正常,但每次部署时,我都必须从 config/app.php
providers
数组和 aliases
数组中删除开发依赖项,这很烦人,每次我这样做 composer install --no-dev
,它向我显示错误,因为他没有找到开发包。
您可以根据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 指点我。