如果我有一个包(我必须添加到
app/config/app.php
提供者/别名),我只真正想要在我的开发盒上(b/c我只用于开发)是否有一种方法可以让我做到这一点利用 composer require --dev <package>
沿 w/ composer install --no-dev
我需要在提供程序和别名数组中添加索引...但我不希望在可能的情况下在多个配置环境文件夹中管理这些大型数组
config
目录中创建一个与您的环境名称匹配的文件夹。
dev
在这种情况下。接下来,重新创建您想要覆盖的任何文件并将它们放入该文件夹中。
app.php
在这种情况下接下来打开
bootstrap/start.php
并找到
$app->detectEnvironment
。传递给此方法的数组确定您正在使用的环境。将此数组的键设置为
dev
将使用
dev
文件夹中的对应文件覆盖任何配置文件。如果您不希望在
app.php
文件中为每个环境创建一个全新的提供程序数组,并表示您只想将某个提供程序添加到您的
dev
环境中,您可以使用像这样的帮助器方法...
'providers' => append_config(array(
'DevOnlyServiceProvider',
))
所有这些信息均来自 Laravel 文档:
在
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,
],
];