5 TP5框架中的模块配置:注意它的优先级高于应用配置

  • 效果


    image.png
  • note

模块配置
一.模块可以有自己的配置文件,独立配置文件和场景配置文件;
二.模块配置的优先级高于应用配置,相同配置项会覆盖掉应用中的配置项;
三.模块默认配置文件名是:config.php;
四.模块默认独立配置文件有二个:database.php(对应数据库的配置项), validate.php(主要配置验证规则)
五.模块场景配置文件名,根据'app_status'参数值确定.

实例说明:
首先application目录下的index(C:\www\tp5\application\index)的下的(创建config.php)config.php
config.php(目的我想修改当前应用中的app_debug的配置项)代码如下

 false,
];

然后我们需要在自定义配置目录(C:\www\tp5\config)的config文件夹下创建一个和模块相对应的目录创建index文件夹,
然后这个index目录它所对应的就是index模块,在该index模块目录(C:\www\tp5\config\index)下再创建一个文件,config.php
那么现在将application目录(C:\www\tp5\application\index)下index目录中的将默认的config.php内容复制到我们自定义的模块配置文件下面
config.php代码(目录C:\www\tp5\config\index)如下:

 false,
];

然后刷新浏览器(tp5.com)在浏览器能看到变化

所以要注意一下,如果在入口文件中,我们自定义了配置目录的话,那么我们对框架的修改
都需要在自定义配置目录config下进行

如果要定义模块场景的配置文件,首先在模块的配置文件中;我们要修改
app_status这个配置项的值(目录C:\www\tp5\config\index的config.php)把它改为场景名称,比如它的场景叫my_home
config.php代码如下:

 false,
'app_status' => 'my_home',
];


然后在当前目录(目录C:\www\tp5\config\index)index目录下面再创建
一个和场景名同名的一个文件叫my_home.php.
my_home.php的内容就是我们模块场景文件的配置项.
例子:还是配置一下数据库,拷贝application目录下的database.php的内容复制到my_home.php(复制到我们模块场景文件配置中),然后修改一下值
所修改内容有

'hostname'        => 'localhost',
// 数据库名
'database'        => 'my_home',
// 用户名
'username'        => 'my_home',
// 密码
'password'        => 'my_home',

my_home.php代码如下

 'mysql',
// 服务器地址
'hostname'        => 'localhost',
// 数据库名
'database'        => 'my_home',
// 用户名
'username'        => 'my_home',
// 密码
'password'        => 'my_home',
// 端口
'hostport'        => '',
// 连接dsn
'dsn'             => '',
// 数据库连接参数
'params'          => [],
// 数据库编码默认采用utf8
'charset'         => 'utf8',
// 数据库表前缀
'prefix'          => '',
// 数据库调试模式
'debug'           => true,
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy'          => 0,
// 数据库读写是否分离 主从式有效
'rw_separate'     => false,
// 读写分离后 主服务器数量
'master_num'      => 1,
// 指定从服务器序号
'slave_no'        => '',
// 是否严格检查字段是否存在
'fields_strict'   => true,
// 数据集返回类型
'resultset_type'  => 'array',
// 自动写入时间戳字段
'auto_timestamp'  => false,
// 时间字段取出后的默认时间格式
'datetime_format' => 'Y-m-d H:i:s',
// 是否需要进行SQL性能分析
'sql_explain'     => false,
// Builder类
'builder'         => '',
// Query类
'query'           => '\\think\\db\\Query',
];

然后刷新浏览器能看到变化

总结:为降低应用的复杂度,提高安全性,绝大多数情况下,模块配置用得并不多,但如果你有个性化
需求时,使用模块设置会方便许多~~

你可能感兴趣的:(5 TP5框架中的模块配置:注意它的优先级高于应用配置)