ThinkPHP5 版本开始增加了扩展配置目录的概念,在应用配置目录或者模块配置目录下面增加extra子目录,下面的配置文件都会自动加载,无需任何配置,这极大的方便了我们进行扩展配置。
例如:我们再 application/extra
目录下面创建一个 basic_info.php
文件,内容如下:
<?php
/**
* 网站基本信息文件.
* 由Extra_Config函数建立.
* 2020/12/05 19:58:05
*/
return [
'WEB_TITLE' => 'XXX管理系统',
'WEB_KEYWORD' => '关键字',
'WEB_COPYRIGHT' => '版权信息',
'WEB_DESCRIPTION' => '网站描述',
];
?>
获取信息的方法
// 在控制器中使用:
\think\Config::get('basic_info.WEB_TITLE');
Config::get('basic_info.WEB_TITLE');
Config('basic_info.WEB_TITLE');
// 模板里面使用:
{$Think.config.WEB_TITLE}
可以创建一个专门的控制器来管理这个配置文件,例如:
/**
* 修改扩展配置文件
* @param array $arr 需要更新或添加的配置
* @param string $file 配置文件名(不需要后辍)
* @param string $note 文件备注的名称
* @return bool
*/
private function Extra_Config($arr = [], $file = 'null', $note = 'null')
{
if (is_array($arr)) {
$filename = $file . EXT;
$filepath = APP_PATH . 'extra/' . $filename;
if (!file_exists($filepath)) {
$conf = "<?php return [];";
file_put_contents($filepath, $conf);
}
$conf = include $filepath;
foreach ($arr as $key => $value) {
$conf[$key] = $value;
}
$time = date('Y/m/d H:i:s');
$str = "<?php\r\n/**\r\n * $note.\r\n * 由Extra_Config函数建立.\r\n * $time\r\n */\r\nreturn [\r\n";
foreach ($conf as $key => $value) {
$str .= "\t'$key' => '$value',";
$str .= "\r\n";
}
$str .= '];';
file_put_contents($filepath, $str);
return true;
} else {
return false;
}
}
注意:如果出现获取不到数据的情况下,请看我的这篇文章:点击跳转