用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3407|回复: 1
收起左侧

[讨论/交流] CI钩子解决静态缓存不能执行SQL等问题,各位老大来探讨一下

[复制链接]
发表于 2011-8-19 15:41:10 | 显示全部楼层 |阅读模式
我们知道在用CI做静态缓存后不能执行SQL等等,我的解决方法是用钩子,代码如下
PHP复制代码
 
 $hook['cache_override'] = array(
 'class'    => 'Browse_initial',
 'function' => 'caching',
 'filename' => 'Browse_initial.php',
 'filepath' => 'hooks',
 'params'   => array()
 );
$hook['post_controller_constructor'] = array(
 'class'    => 'Browse_initial',
 'function' => 'initial',
 'filename' => 'Browse_initial.php',
 'filepath' => 'hooks',
 'params'   => array()
 );
 
复制代码

Browse_initial.php文件代码如下:
PHP复制代码
 
 <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
 
class Browse_initial {
 function initial()
 {
  global $OUT, $CFG, $URI, $RTR;
  if ($URI->rsegment(1) == 'browse')
  {
   if ($OUT->_display_cache($CFG, $URI) == TRUE)
   {
    exit;
   }
  }
 }
 //缓存控制
 function caching()
 {
  return TRUE;
 }
}
?>
 
复制代码

可是这样处理带来的好处基本上很少,但是如果把post_controller_constructor 改成 pre_controller 这个时候占用资源明显少很多,但是这时候Browse_initial.php文件里怎样调用数据库操作,或调用模块操作,或调用其它的类有没有什么好的方法?
发表于 2011-8-19 17:07:53 | 显示全部楼层
顶一下

本版积分规则