当前位置:首页 > 关于Lumen的配置文件使用

关于Lumen的配置文件使用

发布于 2018-05-03 阅读 508 次 框架 Lumen PHP

Lumen默认是通过.env文件来进行框架配置
框架运行后配置会被加载到 php 全局变量 $_ENV中,同时也可以通过全局helper函数:

$value = config('key');

来获取配置信息

注意在使用版本控制git,svn等时候不需要把.env加入版本控制
而是通过 .env.example进行配置文件同步,每一次增加和删除配置项后。注意同步修改.env.example并提交版本控制

简单来说,每一个环境都会有自己的.env文件,通过复制.env.example来创建,并修改为当前环境下的变量值。而.env.example只有一份, 并跟随代码。

自定义config配置

使用过Laravel的可能知道,在项目根目录下有个config文件。
其实Lumen也是有的,只是被默认隐藏起来了。

进入vendor\laravel\lumen-framework目录,有个config文件夹。手动复制config目录至项目根目录下即可:

/your_project_path
|- app
|- bootstrap
|- config
...
|- vendor
...

config配置文件加载

修改 bootstrap/app.php

# 通过 $app->configure() 加载所需的配置文件
$app->configure('config_file_name');

# 实例
/*
|--------------------------------------------------------------------------
| Register Middleware
|--------------------------------------------------------------------------
|
| Next, we will register the middleware with the application. These can
| be global middleware that run before and after each request into a
| route or middleware that'll be assigned to some specific routes.
|
*/

// $app->middleware([
//    App\Http\Middleware\ExampleMiddleware::class
// ]);

// $app->routeMiddleware([
//     'auth' => App\Http\Middleware\Authenticate::class,
// ]);

/*
| 加载自定义配置文件
|
*/
$app->configure('app');
$app->configure('auth');

env 与 config 的关系

env 主要是为了解决同一个变量在不同的环境下有不同的值
比如mysql数据连接:
开发(develop)跟线上生产(product)环境会有不同的ip地址,端口和用户名,密码。通过env只需要修改当前环境下自身的值,也不会容易造成各环境下配置被覆盖。
而config下的配置文件,可以用来记录所有环境下相同的配置值

同时config可以用来对env的配置做很好的归类以及构造合适的数据格式
env只能是单一的key-value
通过 env 配合 config 可以组合多类型的配置数据格式