[PC]PHPCMS配置文件的读取
---------------------------------------------------------------------------------------------------
PHPCMS的入口文件index.php里的代码较少,主要做了三件事,如下:
//1.定义PHPCMS根目录(入口文件所在目录),PHPCMS_PATH全局可用
define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR) //2.引入框架入口文件(与入口文件同级的框架目录phpcms中的base.php)
include PHPCMS_PATH.'/phpcms/base.php'; //3.调用框架入口文件中基类pc_base的静态方法create_app(),进行应用程序初始化
pc_base::create_app();
代码虽少,但是将 做了很多事的框架入口文件base.php加载进来后,等于直接就进入了PHPCMS的核心。
---------------------------@chenwei 黑眼诗人 <www.farwish.com>---------------------------
简单说下base.php主要做的事:
1.定义一系列常量,如框架路径,缓存文件夹路径等,全局可用。
2.加载框架自带函数库,全局可用。
3.通过读取配置文件,将配置值定义为常量,全局可用。
4.自带PHPCMS基类(pc_base),定义了加载系统类,应用类,数据模型,系统函数库,应用函数库,插件类库,插件数据模型,配置文件等的方法。
define('CSS_PATH', pc_base::load_config('system', 'css_path'));
上面定义了CSS路径为常量,以便 前后台的全局使用,那它是如何加载配置文件的,如下方法:
/**
* 加载配置文件
* @param string $file 配置文件
* @param string $key 要获取的配置键
* @param string $default 默认配置。当获取配置项目失败时该值发生作用。
* @param boolean $reload 强制重新加载。
*/
public static function load_config($file, $key = '', $default = '', $reload = false) {
static $configs = array(); //# 定义存放配置值的空数组 //-----------------------------------------
if (!$reload && isset($configs[$file])) { //# 如果重新加载 且 设置了$configs[$file](这里不执行)
if (empty($key)) {
return $configs[$file]; //# 如果配置键为空,返回整个配置数组(配置文件以一维数组形式返回,如:return array('a'=>'','b'=>''))
} elseif (isset($configs[$file][$key])) {
return $configs[$file][$key]; //# 如果设置了有配置键的值,返回
} else {
return $default; //# 默认返回配置default
}
}
//----------------------------------------- $path = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.$file.'.php';//# 系统配置文件路径,$path = PHPCMS_PATH.'caches/configs/system.php';
if (file_exists($path)) {
$configs[$file] = include $path; //# 如果system配置文件存在,引入
} if (empty($key)) { //# 根据$key取配置值,否则返回default值,同上虚线间代码
return $configs[$file];
} elseif (isset($configs[$file][$key])) {
return $configs[$file][$key];
} else {
return $default;
}
}
所以在使用load_config()时,只需传入配置文件名 和 配置键,即可获取配置值; 一般获取配置项的原理类似。
[PC]PHPCMS配置文件的读取的更多相关文章
- properties配置文件的读取和写入
/** * 类名:PropertiesUtil * 功能:提供对properties配置文件的读取和写入 * @author ChengTao */package com.xy.xyd.rest.bi ...
- springcloud的配置文件的读取顺序
SpringBoot默认支持properties和YAML两种格式的配置文件.前者格式简单,但是只支持键值对.如果需要表达列表,最好使用YAML格式.SpringBoot支持自动加载约定名称的配置文件 ...
- [PC]PHPCMS二次开发指南(上)
------------------------------------------------------------------------------------- PHPCMS本身功能已经很完 ...
- Springboot 之 自定义配置文件及读取配置文件
本文章来自[知识林] 读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两 ...
- Springboot 之 自定义配置文件及读取配置文件注意:配置文件中的字符串不要有下划线 .配置中 key不能带下划线,value可以(下划线的坑,坑了我两天..特此纪念)
注意:配置文件中的字符串不要有下划线 .配置中 key不能带下划线,value可以 错误的.不能读取的例子: mySet .ABAP_AS_POOLED = ABAP_AS_WITH_P ...
- Feign从配置文件中读取url
Feign的url和name都是可配置的,就是从配置文件中读取的属性值,然后用占位符引用就可以了: ${rpc.url} @FeignClient(name = "me", url ...
- System.ConfigurationManager类用于对配置文件的读取
http://blog.csdn.net/ligenyingsr/article/details/54095986 System.ConfigurationManager类用于对配置文件的读取.其具有 ...
- IT项目中使用 json格式数据 保存项目配置信息, 在配置文件再读取json文件的内容进行赋值
json格式小巧玲珑,适合做配置文件,特别是大型项目中, 可以将配置信息分类保存到不同的json文件中, 然后再在配置文件中读取配置文件的数据进行赋值, 这里以python为例进行说明: 假设在you ...
- 【APS.NET Core】- Json配置文件的读取
在项目目录下有个 appsettings.json ,我们先来操作这个文件.在appsettings.json中添加以下内容: { "Logging": { "LogLe ...
随机推荐
- 4G模块*99#拨号上网
操作系统:win10 模块型号:quectel EC20 CE FAG 4G模块拨号步骤如下: 1. 打开网络和internet设置 2. 选择“拨号” 3. 选择“设置新连接” 4. 选择“拨号调至 ...
- 基于HAProxy+Keepalived高可用负载均衡web服务的搭建
一 原理简介 1.HAProxyHAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web ...
- C,Java,C#数据类型对比总结
- win7禁用Adnimistrator账号登录
开始 运行 输入 lusrmgr.msc 回车. 双击 用户,双击Administrator ,在 账户已禁用 前面打上勾即可.然后确定.
- mysql给查询的结果添加序号
1.法一: select (@i:=@i+1) i,a.url from base_api_resources a ,(select @i:=0) t2 order by a.id de ...
- Jquery,全选,反选,
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 20165205 2017-2018-2 《Java程序设计》第四周学习总结
20165205 2017-2018-2 <Java程序设计>第四周学习总结 教材学习内容总结 相关概念: 继承:避免多个类间重复定义共同行为 子类与父类: 父类: 对有着共同特性的多类事 ...
- mysql数据库创建编码及排序
编码 utf-8 排序 utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用. utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果 u ...
- python2.7 urllib2 爬虫
# _*_ coding:utf-8 _*_ import urllib2import cookielibimport randomimport refrom bs4 import Beautiful ...
- xshell 设置右键粘贴
1.打开Xshell,单击菜单栏的Tools(工具),选中Options(菜单),进入参数设置界面.. 2. 选择Keyboard and Mouse (键盘和鼠标),把Right-bottox(向右 ...