#1 jake

函数和数据缓存实现
spCache将带给开发者一种新的方式去进行数据缓存。spCache会智能地将数据库查询返回的结果数据给缓存起来,当程序下次需要这些数据的时候,就不再需要链接数据库再进行查询,而是直接从缓存中获取。


成员变量

public

  • $life_time -- 默认的数据生存期

private

  • $model_obj -- 模型对象
  • $input_args -- 调用时输入的参数



成员函数


  • cache_obj -- 执行spModel子类对象的方法,并对返回结果进行缓存。
  • clear -- 清除单个函数缓存的数据
  • clear_all -- 清除全部函数缓存的数据
  • __input -- 函数式使用模型辅助类的输入函数
  • __call -- 魔术函数,支持多重函数式使用类的方法

位置
spCache类位于 SP_PATH/Core/spModel.php


详细cache_obj

执行spModel子类对象的方法,并对返回结果进行缓存。

result cache_obj(object & obj, string func_name, array func_args, float life_time )

参数:


  • object & obj 引用的spModel子类对象
  • string func_name 需要执行的函数名称
  • array func_args 函数的参数
  • float life_time 缓存生存时间

返回:

cache_obj()返回obj调用func_name函数后返回的结果。

结果将按life_time的时间进行缓存,当缓存存在的情况下,调用cache_obj()将返回缓存中的内容。

cache_obj()主要是通过spModel()->spCache()->findAll()的形式调用,所以开发者并不需要直接调用cache_obj()。
clear

清除单个函数缓存的数据

bool clear(object & obj, string func_name, array func_args)

参数:


  • object & obj, 引用的spModel子类对象
  • string func_name 需要执行的函数名称
  • array func_args 函数的参数

在默认不输入参数func_args的情况下,将清除全部该函数生成的缓存。如果func_args有设置,将只会清除该参数产生的缓存。

clear_all

清除全部函数缓存的数据

bool clear_all(void)

__input

函数式使用模型辅助类的输入函数。

object __input(args args)

__input() 是spController的模型辅助类在使用函数式方法时的标准输入接口。

__call

魔术函数,支持多重函数式使用类的方法




2012-08-06 20:37:52