差别

这里会显示出您选择的修订版和当前版本之间的差别。

documents:cacheclass [2008/09/03 17:44] (当前版本)
kimi 创建
行 1: 行 1:
 +====== Moophp缓存类的使用 ======
 +为了减轻服务器的负载,需要在程序中使用缓存的机制,MooPHP考虑到了这一点,在框架中加入了完善的缓存机制。
 +
 +===== 配置文件 =====
 +
 +缓存的配置文件为MooPHP/MooCacheConfig.php,在使用时要根据自己的需要的来修改配置文件。
 +$_MooCacheConfig数组存放的是缓存的名称以及缓存之间的关系,例如
 +<code php>
 +$_MooCacheConfig = array
 + (
 + 'index' => array('settings', 'cacheKey'),
 + 'category' => array('category'),
 + 'cacheFile' => array('cacheKey')
 + );
 +说明:表示缓存index中有settings和cacheKey,缓存category中只有category,缓存cacheFile中只有cacheKey。
 +</code>
 +MooGetCache_cacheName为自定义的返回需要缓存的数据的函数。例如
 +<code php>
 +function MooGetCache_cacheKey() {
 +return $GLOBALS['_MooClass']['MooMySQL']->getAll("SELECT * FROM moophp_test WHERE id=id ORDER BY id DESC LIMIT 0, 5");
 +}
 +</code>
 +===== 方法getBlock =====
 +<code php>
 +       /**
 + *获取Block数据
 + *
 + * @param char $param: 参数字符串
 + * @return void
 + */
 + function getBlock($param){
 + }
 +</code>
 +该方法可以根据参数param判断要获取的block的类型以及是否需要更新缓存,并将block数据存入全局变量$_MooBlock[]中。
 +===== 方法getBlockCache =====
 +<code php>
 +       /**
 + *根据获取cachekey获取block数据
 + *
 + * @param char $cachekey: 要获取的block的cachekey
 + * @return array $cache:以数组的形式返回缓存的数据
 + */
 + function getBlockCache($param){
 + }
 +</code>
 +该方法可以根据cachekey获取block数据,并以数组的形式返回缓存的数据
 +===== 方法parseParameter =====
 +<code php>
 +       /**
 + *解析方法getBlock需要的参数
 + *
 + * @param char $param: 要解析的参数字符串
 + * @return array $paramarr:以数组的形式返回解析后的参数
 + */
 +parseParameter($param) {
 + }
 +</code>
 +该方法可以为方法getBlock解析需要的参数,并以数组的形式的返回。
 +===== 方法setBlockCache =====
 +<code php>
 +       /**
 + *将要缓存的数据序列化之后写入缓存文件
 + *
 + * @param char $cacheKey: 缓存的key
 + * @param char $cacheArray: 要缓存的数据
 + * @return void
 + */
 +setBlockCache ($cacheKey, $cacheArray) {
 + }
 +</code>
 +该方法可以为将要缓存的数据序列化之后写入到缓存文件。
 +===== 方法arrayEval =====
 +<code php>
 +       /**
 + *将一个数组转为字符串的形式
 + *
 + * @param array $array: 要输出的数组
 + * @param int $level:要输出的数组的级数
 + * @return char $evaluate:转换后的字符串
 + */
 + function arrayEval($array, $level){
 + }
 +
 +</code>
 +该方法可以将一个数组转换成字符串的形式,已方便写入缓存文件。
 +===== 方法setCache =====
 +<code php>
 +       /**
 + *通过缓存文件更新缓存
 + *
 + * @param char $cacheFile: 要更新的缓存文件的名称
 + * @return void
 + */
 + function setCache($array, $level){
 + }
 +</code>
 +该方法可以根据缓存文件的名称来更新缓存。
 +===== 方法setCacheBykey =====
 +<code php>
 +       /**
 + *通过缓存key更新缓存
 + *
 + * @param char $cacheKey: 要更新的缓存key的名称
 + * @return void
 + */
 + function setCacheByKey($cacheKey){
 + }
 +</code>
 +该方法可以根据缓存key的名称来更新缓存。因为一个缓存可能存在于多个缓存文件中,这时候你如果想要更新一个缓存的话,就可以用缓存key来更新所有的缓存文件。
 +===== 方法writeCache =====
 +<code php>
 +      /**
 + *将缓存数据写入缓存文件中
 + *
 + * @param char $cacheFile: 缓存文件的地址
 +     * @param char $cacheContent:缓存的数据
 + * @return void
 + */
 + Function  writeCache($cacheFile, $cacheContent) {
 + }
 +</code>
 +该方法可以将需要缓存的数据写入缓存文件。
 +===== 综合使用方法样例 =====
 +<code php>
 +//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>';
 +
 +</code>
 +
 +
 
documents/cacheclass.txt · 最后更改: 2008/09/03 17:44 由 kimi
 
除额外注明的地方外,本维基上的内容按下列许可协议发布:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki