您的位置:首页 > 编程语言 > PHP开发

如何使用PHP生成动态配置文件

2010-12-23 18:52 751 查看
不用多说,代码说明问题,稍懂PHP的都能看明白。将生成过程封装到类,更有重用性,也方便调用。

写入配置文件基类

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'];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: