用于可变相关页的简易Kohana缓存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于可变相关页的简易Kohana缓存相关的知识,希望对你有一定的参考价值。

Useful for controllers. Put this in your base class for easy caching on variable (GET, POST) dependent pages
  1. protected function checkCacheData($prefix = FALSE, $vars = FALSE) {
  2. if($vars == FALSE) {
  3. $vars = input::instance()->get();
  4. }
  5.  
  6. if($prefix === FALSE) {
  7. $prefix = Router::$method;
  8. }
  9.  
  10. if(empty($vars)) {
  11. $cacheKey = 'empty';
  12. } else {
  13. asort($vars);
  14. $queryString = http_build_query($vars);
  15. $cacheKey = md5($queryString);
  16. }
  17.  
  18. if($cachedData = $this->cache->get(Router::$controller'.'.$prefix.$cacheKey)) {
  19. return $cachedData;
  20. } else {
  21. return FALSE;
  22. }
  23. }
  24.  
  25. protected function setCacheData($data, $prefix = FALSE, $vars = FALSE) {
  26. if($vars == FALSE) {
  27. $vars = input::instance()->get();
  28. }
  29.  
  30. if($prefix === FALSE) {
  31. $prefix = Router::$method;
  32. }
  33.  
  34. if(empty($vars)) {
  35. $cacheKey = 'empty';
  36. } else {
  37. asort($vars);
  38. $cacheKey = md5(http_build_query($vars));
  39. }
  40.  
  41. $this->cache->set(Router::$controller.'.'.$prefix.$cacheKey, $data);
  42. }

以上是关于用于可变相关页的简易Kohana缓存的主要内容,如果未能解决你的问题,请参考以下文章

Kohana ORM 缓存/缓存设计方法

Shell外壳的简易模拟

MySQL:28 用于存放磁盘上的多行数据的数据页的结构原理

publiccms中将推荐页的内容显示在页面片段中

Joomla 渐进式缓存不处理具有可变输出的模块

面localStorage用作数据缓存的简易封装