配置说明
时间:2011-04-17
来源:互联网
一, 配置容易出现的误解。
并非所有的配置项在分组配置文件或者模块配置文件中配置都会生效。
原因很简单, 有些配置项在加载分组配置文件之前就使用了。 比如APP_GROUP_LIST, 系统要先读取APP_GROUP_LIST 才知道有哪些分组, 然后才加载当前分组的配置。 也就是说APP_GROUP_LIST 这个配置项 在加载分组配置文件之前 就被使用了, 那么我们在分组配置文件中定义 APP_GROUP_LIST 配置项 会起作用吗?
在分组配置文件中 不会起作用的配置项还有:
(1)系统变量相关: VAR_GROUP,VAR_MODULE,VAR_ACTION,VAR_ROUTER,VAR_PAGE,VAR_TEMPLATE,VAR_LANGUAGE,VAR_AJAX_SUBMIT,VAR_PATHINFO
(2)URL以及路由相关:
URL_HTML_SUFFIX,URL_PATHINFO_DEPR,URL_PATHINFO_MODEL,URL_MODEL,URL_ROUTE_RULE,URL_ROUTER_ON
(3)分组配置项目:
APP_GROUP_LIST ,DEFAULT_GROUP
(4)其他:
APP_DEBUG,APP_PLUGIN_ON,APP_AUTOLOAD_REG,SESSION_AUTO_START,DEFAULT_TIMEZONE等。
注:不能在分组配置文件或者模块配置文件中配置的配置项基本会在ThinkPHP/Lib/Think/Util/Dispatcher.class.php 中使用。
二,分享一点配置的应用技巧。
我们如果想通过读取数据库信息进行配置,从而用户可以通过后台更改配置怎么做?
假设数据表为 Think_config, 有字段id(主键) name(配置项名称) value(配置项值), (当然你还可以根据自己的实际情况增加其他字段)
方法1, 建立公用类, 建立一个 CommonAction.class.php 让其他控制器都继承与 CommonAction (如果你不知道怎么实现,可以查看官方示例代码中的RBAC,看看它是怎么实现的)
在公用类中定义一个初始化函数。
-
- <?php
- class CommonAction extends Action{
- function _initialize(){
- $config=M('Config')->getField('name,value');
- C($config);
- }
- }
- ?>
如果你想所有配置项都能通过读取数据库来配置, 那么只需要更改一点核心代码就行了。
ThinkPHP/Lib/Think/Core/App.class.php 大约第53行, 在注视 //[/RUNTIME] 之下 加入代码
-
- //[/RUNTIME]
- $config=M('Config')->getField('name,value');
- C($config);
- // 设置系统时区 PHP5支持
以后可考虑增加“配置扩展”的功能, 大家就不用修改核心代码了。
作者: luofei614 发布时间: 2011-04-17
谢老大.
作者: hexuan1922 发布时间: 2011-04-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28