源码 ASP源码 PHP源码 NET源码 JAVA源码 FLASH源码 其它源码 整站源码 常见问题

tp5配置

常见问题 7v 22天前  次浏览
1. 惯例配置,系统配置,可以复制出来,不建议修改.

/thinkphp/convention.php

2. 应用配置, 我们把 application 下面的配置清空, 在同目录新建 config, 再新建 config.php 文件(不能修改)

/config/config.php

3. 扩展配置

在 config 文件夹下新建 extra 目录. 再新建一个 demo.php 

return [
    'demokey' => 'demovalue',
];
这时候, 在 dump(confilg()) 后

["demo"] => array(1) {
    ["demokey"] => string(9) "demovalue"
  }
4.场景配置, 可以设置例如 公司的配置文件, 家里工作配置文件等. 可以区分. 

在应用配置文件中 config/config.php中,定义 

''app_status" => 'home',

此时, 在 config文件夹下, 新建一个 home.php , 也是返回数组. 这里注意, 如果修改数据库的信息, 需要填入数据库所有的配置项.

5.模块配置

之前的配置中, 是配置完毕, 所有模块都有效. 模块配置可以针对模块来进行配置.

例如现在有一个模块 index ,则我们在 config 文件夹下, 新建一个index目录, 和模块名保持一致, 然后新建一个 config.php, 在里面返回的数组, 只是针对 index 这个模块有效.

6. 动态配置

针对当前的某个控制器去或方法, 动态的改变配置. 
 class Index
{
    public function __construct()
    {
        config('before', 'beforeAction');
    }
 
    public function index()
    {
        dump(config());
    }
 
}

如果想只在控制器中生效, 则在构造函数中, 用 config方法添加. 则只在此控制器下生效.

7. 环境变量的配置和使用

tp5在运行的时候, 会读取环境变量, 在根目录下 新建 .env 文件, 在其中加入配置

status=prod
 
[database]
username = root_env
password = root

读取的时候, 如下.  这是在 应用配置中, 读取的
<?php
// +----------------------------------------------------------------------
// | User: zq
// +----------------------------------------------------------------------
// | Time: 2019-06-16 16:47
// +----------------------------------------------------------------------
 
use think\Env;
 
return [
    'app_status' => Env::get('status', 'dev'),
];

再在config文件夹下, 新建 dev.php ,则会读取 dev.php 中的配置. 通过修改 .env 文件, 来实现切换配置.

相关链接

版权所有

发表评论