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

关于Lumen的配置文件使用

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

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

  1. $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目录至项目根目录下即可:

  1. /your_project_path
  2. |- app
  3. |- bootstrap
  4. |- config
  5. ...
  6. |- vendor
  7. ...

config配置文件加载

修改 bootstrap/app.php

  1. # 通过 $app->configure() 加载所需的配置文件
  2. $app->configure('config_file_name');
  3. # 实例
  4. /*
  5. |--------------------------------------------------------------------------
  6. | Register Middleware
  7. |--------------------------------------------------------------------------
  8. |
  9. | Next, we will register the middleware with the application. These can
  10. | be global middleware that run before and after each request into a
  11. | route or middleware that'll be assigned to some specific routes.
  12. |
  13. */
  14. // $app->middleware([
  15. // App\Http\Middleware\ExampleMiddleware::class
  16. // ]);
  17. // $app->routeMiddleware([
  18. // 'auth' => App\Http\Middleware\Authenticate::class,
  19. // ]);
  20. /*
  21. | 加载自定义配置文件
  22. |
  23. */
  24. $app->configure('app');
  25. $app->configure('auth');

env 与 config 的关系

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

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