我刚刚开始在Yii工作,我正在尝试为CClientScript添加一些功能,然后开始覆盖我试图理解它正在做的所有事情,所以我不会因为不包括某些东西而绊倒自己包括错了。
我在注册脚本/文件时发现了一个方法调用:
$this->recordCachingAction('clientScript','registerScriptFile',$params);
我在一个案例中通过几个类跟踪了这个链到COutputCache并看到了replayActions函数。这是用来做什么的?有没有什么需要这个或者是我的怀疑,它只是一个有用的调试功能来跟踪缓存?
铊;博士:
为什么要记录缓存操作以便以后重播?
答案 0 :(得分:1)
此方法保存缓存方法的输出。在您的示例中,CClientScript->registerScriptFile()
的结果输出将被缓存(如果启用了缓存,显然)并保存以供以后调用。稍后,如果缓存仍然有效并且再次调用CClientScript->registerScriptFile()
(使用相同的参数),则不会再次生成输出,而是从缓存中获取。
基本上这是基于方法的模块化缓存(大多数影响输出的方法都被缓存)。当然,您可以在模型,控制器等中使用它。
答案 1 :(得分:-1)
Johnatan的回答是它的正确和良好的描述。但我得到了一个更详细的见解(这是我正在寻找的更多)进入如何它在这里做到了: