ThinkPHP5.0.1版本开始增加了扩展配置目录的概念,在应用配置目录或者模块配置目录下面增加extra子目录,下面的配置文件都会自动加载,无需任何配置。

这极大的方便了我们进行扩展配置,比如在application/extra目录下面创建一个web.php文件,内容如下:


<?php
// +----------------------------------------------------------------------
// | 网站扩展配置文件
// | Author: www.codesou.cn
// +----------------------------------------------------------------------
return [
    'WEB_NAME' => '零五科技',
    'WEB_HOST' => 'http://www.codesou.cn',
    'WEB_BEIAN' => '辽ICP备13002105号-1',
];

这样我们很就可以方便的获取这些扩展配置信息。

在控制器中获取网站名称:


	Config::get('web.WEB_NAME');

在模板中获取网站备案号:


	{$Think.config.third.WEB_BEIAN}

我们还可以创建一个专门的控制器来管理这个配置文件,示例具体如下:


function add()
{
    if (request()->isPost()) {
        $path = 'extra/web.php';
        $file = (include $path);
        $config = array(
            'WEB_COPYRIGHT' => input('WEB_COPYRIGHT')
        );
        $res = array_merge($file, $config);
        $str = '<?php return [';
        foreach ($res as $key => $value) {
            $str .= ''' . $key . ''' . '=>' . ''' . $value . ''' . ',';
        }
        $str .= ']; ';
        if (file_put_contents($path, $str)) {
            $this->success('添加成功');
        } else {
            $this->error('添加失败');
        }
    }
}

修改的话思路相同,先读取所有配置,然后循环输出到表单,在根据提交循环写入更新。