关于Hook中的问题
用的hook['pre_controller']:如下$hook['pre_controller'][] = array(
'class' => 'Auth_filter',
'function' => 'before',
'filename' => 'Auth_filter.php',
'filepath' => 'hooks',
'params' => array()
);
钩子是:
class Auth_filter
{
function before($class = null, $method = null)
{
$obj =& get_instance();
var_dump($obj);//结果是NULL
}
}
这里不能用get_instance,谁能解决这个问题吗? 自己顶一下。快来人说一下好吧。 pre_controller 那时候控制器还没实例化
如果能在controller实例化之后处理的话就把挂钩点改成 post_controller_constructor 吧。 用pre_controller是想在控制器之前对用户身份做验证。用的CI的Auth扩展。是按Auth的wiki上说的方式,确行不通。有那位用过Auth呢?帮忙说一下吧。搞了一天了。 从源码来看,你只好自己 $CI = new $class();了,其中$class是你的控制器类。
参见system/codeigniter/CodeIgniter.php 181-197行。 没人用过pre_controller吗?继续等待...... 其实pre_controller不是像你这么用的。
你如果需要用CI实例,使用post_controller_constructor这个hook才是正确的。这时候已经调用了控制器的构造函数,但是还没有调用控制器的具体方法。 说实话,不知道 构造控制器前调用钩子 和 构造完后调用 有什么区别,
总不能仅仅是多 初始化了一下,多做了一些操作而已 就是仅仅多做了一点操作。ci的封装很简单的,整个框架差不多都是用include建起来的。看完源码以后,对他的性能非常放心。
我也是在hook里做登录校验,用的就是前面说的post_controller_constructor。 就是仅仅多做了一点操作。ci的封装很简单的,整个框架差不多都是用include建起来的。看完源码以后,对他的性能非常放心。
我也是在hook里做登录校验,用的就是前面说的post_controller_constructor。 ...
erlang14 发表于 2009-3-5 14:05 http://codeigniter.org.cn/forums/images/common/back.gif
那你倒讲讲什么时候用pre_controller
页:
[1]