-
效果
-
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',
];
然后刷新浏览器能看到变化
总结:为降低应用的复杂度,提高安全性,绝大多数情况下,模块配置用得并不多,但如果你有个性化
需求时,使用模块设置会方便许多~~