Yii如何实现全站缓存?有没有 成熟的 全站缓存 解决方案

Yii如何实现全站缓存?有没有 成熟的 全站缓存 解决方案?

page caching 感觉不太人性化,每个 controller都要配置,有没有简化的方法?

还有'varyByParam'=>array('id'), 这个参数 有没有 通配符 配置,比如 ‘*’代表所有的,

另外 希望加入 缓存方式 加上 文件缓存功能(File cache),File cache比 db cache 效率应该更高

你可以写一个base controller,在其中配置全站缓存。

varyByParam不支持通配符。如果支持的话网站可能比较容易被攻击(例如大量请求不同的GET,造成缓存很快用完)。

"你可以写一个base controller,在其中配置全站缓存。"

这个base controller应该怎么写呢?能否给点思路?

比如在components目录下有这么个BaseController.php:

你所有的controller都继承这个基类。

“varyByParam不支持通配符。如果支持的话网站可能比较容易被攻击(例如大量请求不同的GET,造成缓存很快用完)。 ”

就算不支持通配符 也会出现这种情况吧?比如 我指定了id,但是我id 利用a-z,0-9 的混合提交 照样会 造成缓存很快用完,感觉 如果支持统配符的话 系统 会更人性化,也可以实现一些比较个性的功能(比如:我想实现 以 ‘h_’开头的action生成静态 会比较好配置,期待次功能)

的确,更改不同的id值也有可能造成类似的问题。不过这是可以控制的,因为你可以对id做验证。

我理解引入更多的个性化功能可以让开发更加快捷,但这是以增加框架复杂度(代码复杂度和徐熙复杂度)为代价的。我们的宗旨是尽量避免引入太多的automagical(自动的神奇的)功能,而把重点放在提高可扩充性上,这样不同的用户可以根据自己的喜好进行二次开发,并且能和他人共享自己添加的功能。

你可以尝试实现你说的以h_开头的静态缓存功能。如果需要核心代码的一些支持,我们可以一起讨论。