如果我有一个包(我必须添加到app/config/app.php
提供者/别名),我只想在我的开发盒上(b / c我只用于开发)是否有一种方法可以允许我这样做是利用composer require --dev <package>
沿着composer install --no-dev
我需要在提供者和别名数组中添加一个索引......但是如果可能的话,我会不喜欢来管理多个配置环境文件夹中的那些大型数组
答案 0 :(得分:8)
在config
目录中创建一个与您的环境名称匹配的文件夹。在这种情况下dev
。
接下来,重新创建您要覆盖的所有文件并将它们放入该文件夹中。在这种情况下app.php
接下来打开bootstrap/start.php
并找到$app->detectEnvironment
。传递给此方法的数组确定您正在使用的环境。将此数组的密钥设置为dev
将使用dev
文件夹中的对应文件覆盖任何配置文件。
如果您不希望在app.php
文件中为每个环境创建一个全新的提供者数组,并且您只想在某个dev
环境中添加某个提供者,则可以使用帮助方法像这样...
'providers' => append_config(array(
'DevOnlyServiceProvider',
))
所有这些信息都来自此处的Laravel文档:http://laravel.com/docs/configuration
答案 1 :(得分:1)
对于任何想要在Laravel 5中执行此操作的人,您仍然可以模拟L4行为。
在app/Providers/AppServiceProvider
的顶部添加:
use Illuminate\Foundation\AliasLoader;
然后编辑register()方法:
public function register()
{
$path = $this->app->environment() .'.app';
$config = $this->app->make('config');
$aliasLoader = AliasLoader::getInstance();
if ($config->has($path)) {
array_map([$this->app, 'register'], $config->get($path .'.providers'));
foreach ($config->get($path .'.aliases') as $key => $class) {
$aliasLoader->alias($key, $class);
}
}
}
然后只需添加config/<YOUR ENVIRONMENT NAME>/app.php
配置文件并定义其他提供程序和别名,与app.php相同
例如:
return [
'providers' => [
Barryvdh\Debugbar\ServiceProvider::class,
],
'aliases' => [
'Debugbar' => Barryvdh\Debugbar\Facade::class,
],
];