首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
CI源码(一)—config配置文件
时间:
2015-04-11 17:56:34
阅读:
192
评论:
0
收藏:
0
[点我收藏+]
标签:
php ci 源码分析
(一) 使用方式
(a) 系统级配置
语言、字符编码、session、cookie等配置项
文件位置: application/config/config.php
加载方式: 自动加载
调用方式: $this->config->item(‘config_item_key‘);
(b) 业务级别配置
实际业务中用到的配置项,或者叫做常量,比如1<->男 2<->女 3<->未知等数据。强烈建议把业务级别的配置项与系统配置项分开。CI支持多级目录的配置文件加载,所以可以在application/config文件夹下建立专门的业务配置文件夹, 例如constants.
文件位置: application/config/path/to/config_file.php
加载方式: 手动加载(或者在autoload.php中配置自动加载).$this->config->load(‘path/to/config_file’, true).第二个参数,会把不同文件的配置分组, 强烈建议加上.
调用方式: $this->config->item(‘config_item_key’, ‘path/to/config_file’); 第二个参数是上面加载的时候指定的分组
(c) 动态修改配置
CI所有的配置项都是一次加载,同时也支持动态修改配置项。但是暂时不支持指定分组的配置项修改,我自己实现了, 地址:
https://github.com/wkupaochuan/analysis-about-ci-frame.git
, 路径是application/core/MY_Config.php
单个修改: $this->config->set_item(‘config_item_key’, $value);
批量修改: $this->config->_assign_to_config($array);
(二) 实现方式
(a) Common.php
这个文件中都是全局可以调用的方法,跟config相关的是get_config方法和config_item函数, 主要用在system的框架文件中
get_config: require文件application/config/config.php文件,保存在局部静态变量$_config中,所以也是一次加载。这里需要注意的是因为加载的是必须的配置文件config.php,所以使用了require,来进行错误处理
config_item: 获取加载过的配置项
(b) system/core/config.php 类
这个类实例化后作为超类CI的一个属性$this->config, 主要方法__construct()、load()、item(), 配置文件加载后赋值给config对象的属性$config, 因为超类CI是全局的,所以这里的配置文件也是一次加载
__construct: 默认先加载application/config/config.php文件,调用Common.php文件中的函数get_config
load: 根据传入的参数$file,分别在config/ENVIRONMENT/$file和config/$file中寻找目标配置文件,优先加载当前ENVIRONMENT下的配置文件。找到配置文件后会把对应的配置数组merge到已经加载的配置中。这里要十分注意,一旦两个不同的配置文件中存在相同的配置key,又没有指定配置项分组,前面加载的配置项就会被覆盖,所以强烈建议,每次load配置文件都指定第二个参数use_section
config_item: 返回已经加载的配置项, 没找到(确实没有的配置项和未加载的配置项)则返回false。
(三)优缺点
(a) 缺点
每次使用$this->config->item(),获取配置项时,有可能因为没有load过对应的配置文件,所以建议load then item, 或者全部配置文件都配置上autoload。这里我自己实现了一个my_item方法my_item($file, $item), 不需要先加载后调用。方法内部会先调用,没有结果会尝试加载一次,然后再次调用并返回结果,一定程度上简化了代码, 而且不需要配置autoload。路径是application/core/MY_Config.php。
(b) 优点
支持目录分级, 方便清晰的组织、管理业务配置文件
ci框架源码分析地址
https://github.com/wkupaochuan/analysis-about-ci-frame.git
CI源码(一)—config配置文件
标签:
php ci 源码分析
原文地址:http://blog.csdn.net/wkupaochuan/article/details/44996993
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!