如何使用PHP生成动态配置文件
2010-12-23 18:52
751 查看
不用多说,代码说明问题,稍懂PHP的都能看明白。将生成过程封装到类,更有重用性,也方便调用。
写入配置文件基类
调用函数:
写入配置调用方法:
saveBaseCache('myconfig', $data);
读取配置调用方法:
global $_DCACHE;
loadBaseCache('myconfig');
$data = $_DCACHE['sea_award'];
写入配置文件基类
class BaseCacheClass_my_class { var $cache_file; function __construct() { $cachename = trim(str_replace('BaseCacheClass_', '', get_class($this))); $this->cache_file = SYSDIR_CACHE . '/data/base_' . $cachename . '.php'; } public function getCacheFilename() { return $this->cache_file; } public function saveCache($data = null) { if ($data === null) $data = array(); $cachename = trim(str_replace('BaseCacheClass_', '', get_class($this))); $filename = $this->cache_file; $data = var_export($data, true); $data = "<?php/r/n//This file was built by class " . get_class($this) . "/r/n/r/n" . "global /$_DCACHE;/r/n" . "/$_DCACHE['{$cachename}'] = " . $data . ";/r/n/r/n?>"; file_put_contents($filename, $data); } }
调用函数:
<?php /** * 读取/从XML创建 base cache 数据文件 */ function loadBaseCache($cachename) { global $_DCACHE; if ( ( ! isset($_DCACHE[$cachename]) || ( ! is_array($_DCACHE[$cachename])) ) ) { $classname = 'BaseCacheClass_'.$cachename; class_exists($classname, false) or require(SYSDIR_CLASS .'/cache/cache_base_' . $cachename . '_class.php'); $cc = new $classname(); if (method_exists($cc, 'getCacheFilename')) $fn_cache = $cc->getCacheFilename(); else $fn_cache = SYSDIR_CACHE . '/base/base_'. $cachename . '.php'; if ( ! file_exists($fn_cache)) $cc->saveCache(); //生成缓存文件 unset($cc); require($fn_cache); //载入缓存文件 } } /** * 重写 base cache 数据文件 */ function saveBaseCache($cachename, $data) { global $_DCACHE; $classname = 'BaseCacheClass_'.$cachename; class_exists($classname, false) or require(SYSDIR_CLASS .'/cache/cache_base_' . $cachename . '_class.php'); $cc = new $classname(); $cc->saveCache($data); //生成缓存文件 unset($cc); unset($_DCACHE[$cachename]); loadBaseCache($cachename); }
写入配置调用方法:
saveBaseCache('myconfig', $data);
读取配置调用方法:
global $_DCACHE;
loadBaseCache('myconfig');
$data = $_DCACHE['sea_award'];
相关文章推荐
- 转载:如何使用XCodeFactory自动生成XML配置文件和对应的解析类
- log4j2 不使用配置文件,动态生成logger对象
- ssm项目使用Mybatis动态拼接sql语句,生成的sql中文全部显示为???的问题(配置文件sql语句中文解析问题)
- 如何使用XCodeFactory自动生成XML配置文件和对应的解析类?
- php经典实例使用正则动态修改配置文件
- PHP经典实例教程(使用正则动态修改配置文件)
- php经典实例使用正则动态修改配置文件
- 库的使用与生成+库的分类+如何制作库+如何使用库+动态编译与静态编译+如何配置针对arm的开发工具链
- log4j2 不使用配置文件,动态生成logger对象
- 如何使用PHP DOM创建动态的XML文件
- log4j2 不使用配置文件,动态生成logger对象
- 使用MAVEN动态生成配置文件
- 如何使用PHP DOM创建动态的XML文件
- fpdf 在php中生成pdf文件时如何使用自定义字库.
- php经典实例使用正则动态修改配置文件
- java中如何使用asm动态的生成或修改一个class文件以及asm的架构思想
- log4j2 不使用配置文件,动态生成logger对象
- 如何使用PHP动态生成饼状图、柱状图和折线图
- Nginx如何配置可以让.html后缀的文件当php动态文件执行
- 如何使用PHP动态生成饼状图、柱状图和折线图