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

[控制器] hook中的& get_instance()无法获取

[复制链接]
发表于 2010-6-2 15:38:35 | 显示全部楼层 |阅读模式
某个hook中,pre_controller中使用$ci=& get_instance(),结果打印出来的ci为空,Google了下,说是
在pre_controller 的时候控制器还没实例化。。。。。。
那请问有什么办法获取& get_instance()呢?
 楼主| 发表于 2010-6-2 16:17:02 | 显示全部楼层
我不明白的是,手册所说的:
pre_controller
在调用你的任何控制器之前调用.此时所用的基础类,路由选择和安全性检查都已完成.
按我理解,“所用的基础类”应该可以调用了& get_instance()了吧?
发表于 2010-6-2 17:51:51 | 显示全部楼层
构造函数还没有执行完,所以现在还没有超级对象,请使用 post_controller_constructor 挂钩点。
 楼主| 发表于 2010-6-2 19:23:06 | 显示全部楼层
回复 3# Hex


   看来我还是不太理解CI中的HOOK,不好意思,用惯了ZF,一时没看明白CI的hook内部机制......
发表于 2010-6-3 14:30:28 | 显示全部楼层
ci的hook是这样
$EXT->_call_hook('pre_system');/codeigniter.php line89
这里就去执行你预先设置的hook了
然后你到Hooks类里去看这个方法就明白了。
其他的hook一样加载。
 楼主| 发表于 2010-6-3 15:45:29 | 显示全部楼层
回复 5# mahone


   谢谢指点:)

本版积分规则