Moophp缓存类的使用

为了减轻服务器的负载,需要在程序中使用缓存的机制,MooPHP考虑到了这一点,在框架中加入了完善的缓存机制。

配置文件

缓存的配置文件为MooPHP/MooCacheConfig.php,在使用时要根据自己的需要的来修改配置文件。 $_MooCacheConfig数组存放的是缓存的名称以及缓存之间的关系,例如

$_MooCacheConfig = array
		(
		'index'		=> array('settings', 'cacheKey'),
		'category'		=> array('category'),
		'cacheFile'		=> array('cacheKey')
		);
说明:表示缓存index中有settings和cacheKey,缓存category中只有category,缓存cacheFile中只有cacheKey。

MooGetCache_cacheName为自定义的返回需要缓存的数据的函数。例如

function MooGetCache_cacheKey() {
return $GLOBALS['_MooClass']['MooMySQL']->getAll("SELECT * FROM moophp_test WHERE id=id ORDER BY id DESC LIMIT 0, 5");
}

方法getBlock

       /**
	 *获取Block数据
	 *
	 * @param char $param: 参数字符串
	 * @return void
	 */
	function getBlock($param){
	}

该方法可以根据参数param判断要获取的block的类型以及是否需要更新缓存,并将block数据存入全局变量$_MooBlock[]中。

方法getBlockCache

       /**
	 *根据获取cachekey获取block数据
	 *
	 * @param char $cachekey: 要获取的block的cachekey
	 * @return array $cache:以数组的形式返回缓存的数据
	 */
	function getBlockCache($param){
	}

该方法可以根据cachekey获取block数据,并以数组的形式返回缓存的数据

方法parseParameter

       /**
	 *解析方法getBlock需要的参数
	 *
	 * @param char $param: 要解析的参数字符串
	 * @return array $paramarr:以数组的形式返回解析后的参数
	 */
parseParameter($param) {
	}

该方法可以为方法getBlock解析需要的参数,并以数组的形式的返回。

方法setBlockCache

       /**
	 *将要缓存的数据序列化之后写入缓存文件
	 *
	 * @param char $cacheKey: 缓存的key
	* @param char $cacheArray: 要缓存的数据
	 * @return void
	 */
setBlockCache ($cacheKey, $cacheArray) {
	}

该方法可以为将要缓存的数据序列化之后写入到缓存文件。

方法arrayEval

       /**
	 *将一个数组转为字符串的形式
	 *
	 * @param array $array: 要输出的数组
	* @param int $level:要输出的数组的级数
	 * @return char $evaluate:转换后的字符串
	 */
	function arrayEval($array, $level){
	}

该方法可以将一个数组转换成字符串的形式,已方便写入缓存文件。

方法setCache

       /**
	 *通过缓存文件更新缓存
	 *
	 * @param char $cacheFile: 要更新的缓存文件的名称
	 * @return void
	 */
	function setCache($array, $level){
	}

该方法可以根据缓存文件的名称来更新缓存。

方法setCacheBykey

       /**
	 *通过缓存key更新缓存
	 *
	 * @param char $cacheKey: 要更新的缓存key的名称
	 * @return void
	 */
	function setCacheByKey($cacheKey){
	}

该方法可以根据缓存key的名称来更新缓存。因为一个缓存可能存在于多个缓存文件中,这时候你如果想要更新一个缓存的话,就可以用缓存key来更新所有的缓存文件。

方法writeCache

      /**
	 *将缓存数据写入缓存文件中
	 *
	 * @param char $cacheFile: 缓存文件的地址
     * @param char $cacheContent:缓存的数据
	 * @return void
	 */
	Function  writeCache($cacheFile, $cacheContent) { 
	}

该方法可以将需要缓存的数据写入缓存文件。

综合使用方法样例

//note 定义缓存目录,如果不定义缓存目录的话,将会使用默认路径,默认路径是与框架核心文件夹平级的Moo-data文件夹
define('MOOPHP_DATA_DIR', dirname(__FILE__).'/Moo-data');
 
//note 加载MooPHP框架
require dirname(__FILE__).'/../../MooPHP/MooPHP.php';
 
 
//note 通过缓存文件更新缓存
$_MooClass['MooCache']->setCache('cacheFile');
 
//note 通过缓存key更新缓存
$_MooClass['MooCache']->setCacheByKey('cacheKey');
 
//note 缓存需要加密的数据
$_MooClass['MooCache']->getBlock("type=query/name=newbloglist/sql=SELECT * FROM moophp_blogs ORDER BY id DESC/cachetime=2000");
 
//note 输出通过block缓存的数据
foreach((array)$_MooBlock['newbloglist'] as $blog) {
    print_r($blog);
}
//note 加载缓存
include MooCacheFile('cacheFile');
 
echo '<pre>';
print_r($_MooCache);
echo '</pre>';
 
documents/cacheclass.txt · 最后更改: 2008/09/03 17:44 由 kimi
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki