我安装了新的 Laravel 5 副本。
我的 detectEnvironment 函数是这样定义的:
$app->detectEnvironment(function()
{
return 'local';
return getenv('APP_ENV') ?: 'production';
});
在config\local
我创建的database.php
文件中:
<?php
return [
'nothing' => 'new',
];
我跑php artisan clear-compiled
。
我的index
方法WelcomeController
是这样定义的:
public function index(Application $app)
{
echo $app->environment();
var_dump($app['config']['database']);
//echo $app['config']['database'];
return view('welcome');
}
应用程序是这样导入的: use Illuminate\Foundation\Application;
我得到的结果是:
local array(1) { ["nothing"]=> string(3) "new" }
而我希望 Laravel 将配置文件与生产文件级联(使用默认config\database.php
文件。
奇怪的是,即使我return 'local';
再次评论该行,php artisan clear-compiled
它也会显示:
production array(1) { ["nothing"]=> string(3) "new" }
所以它似乎总是加载database.php
文件内容(这个来自本地文件夹)并覆盖主database.php
文件。当我将此文件名更改为 example 时,它再次正常工作aaa.php
。
它是一个错误还是环境配置不应该存储在config
目录中?但如果不是,它们应该存放在哪里?我不知道这是一个错误还是一个功能,所以如果有人知道更多关于它的信息,请给我一个线索。