ThinkPHP学习笔记(8)在网页中配置Config文件内容
在TP或者是别的程序的编程中,我们经常会用到配置文件来动态的控制程序的一些行为或表现。
在TP框架中,默认的配置文件是放在Conf目录下,并写作PHP数组的形式,如
<?php return array( //开启项目分组 //开启分组 "APP_GROUP_LIST" => "Index,Admin", // 默认分组 "DEFAULT_GROUP" => "Index", "APP_GROUP_MODE" => 1, "APP_GROUP_PATH" => "Modules", //扩展配置项 "LOAD_EXT_CONFIG" => "verify", // 数据库连接参数 "DB_HOST" => "127.0.0.1", "DB_USER" => "root", "DB_PSW" => "", "DB_NAME" => "blog", "DB_PREFIX" => "hd_", ); ?>
那么,我们是否可以利用PHP的文件读写函数,以及模板文件来在网页上动态设置配置文件的内容呢?答案是肯定的。
要动态设置配置文件内容,我们需要以下几点知识:
1、在模板中读取配置文件内容,可以使用方法{$Think.config.(配置文件条目名称,不区分大小写)}
2、一个路径字符串预定义变量CONF_PATH
3、TP中的文件读写函数F
有了以上几点知识,我们就可以网页中动态配置Config文件内容了。
首先,在模板文件里面,建立表单,并让表单的内容默认为当前配置文件设置的内容(通过Think.config函数)。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="__PUBLIC__/Css/public.css"/> </head> <body> <form action="{:U(GROUP_NAME."/System/updataVerify")}" method="POST"> <table class="table"> <tr> <th colspan="2">验证码配置</th> </tr> <tr> <td align="right">验证码长度</td> <td><input type="text" name="VERIFY_LENGTH" value="{$Think.config.verify_length}"/></td> </tr> <tr> <td align="right">验证码宽度</td> <td><input type="text" name="VERIFY_WIDTH" value="{$Think.config.verify_width}"/></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="保存修改"> </td> </tr> </table> </form> </body> </html> <!--上面{$Think.config.verify_length},{$Think.config.verify_width} 分别读取config文件中的verify_length,verify_width字段-->
然后,在PHP的控制器处理表单函数中,读取POST过来的数据(是一个php数组,形式正好与配置文件相同,不过要确保表单中各项的name属性与配置文件条目名称相同)
public function updataVerify() { //写文件函数F(文件名,数据,文件路径) // 在这里我们应用了路径变量字符CONF_PATH,它会自动定位到我们项目工程的Config文件夹目录下 if(F("verify", $_POST, CONF_PATH)) { $this->success("修改成功", U(GROUP_NAME."/System/verify")); } else { $this->error("修改失败,请手动修改".CONF_PATH."verify.php文件"); } }
通过F函数,我们就可以覆盖原文件中的内容,并且会返回布尔值,来表示是否覆盖成功。
这样,我们就通过网页的形式,动态的配置配置文件的内容了。
PS:如何添加自定义配置文件。
使用C函数和$Think.config函数获取配置文件中的项的内容,他们都会自动寻找在Config文件夹下的Config.php文件中的内容。若要想在自定义的配置文件中寻找,需要把自定义配置文件名称在Config.php文件中进行配置,并可以添加多个配置文件。配置项为:
//扩展配置项 "LOAD_EXT_CONFIG" => "verify,wac",配置项中添加了两个配置文件verify.php,wac.php,并将这两个文件放入到Config文件夹下面。这样,再调用C或者$Think.config函数时,就可以找到这两个配置文件中的条目了。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。