phpcms 加载php文件,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的核心。
[email?protected] 黑眼詩人 ---------------------------
簡單說下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()時,只需傳入配置文件名 和 配置鍵,即可獲取配置值; 一般獲取配置項的原理類似。
原文:http://www.cnblogs.com/farwish/p/3825161.html
總結
以上是生活随笔為你收集整理的phpcms 加载php文件,PHPCMS配置文件的读取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拳头游戏任命新任中国首席运营官,负责国内
- 下一篇: 查oracle事务超时时间,ORA-24