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

[已解决] 开启config下的enable_hooks 报sission错误

[复制链接]
发表于 2012-3-31 15:31:20 | 显示全部楼层 |阅读模式
本帖最后由 Ding 于 2012-3-31 15:32 编辑

今天尝试了下 hook相关的东西 在项目添加了
PHP复制代码
$hook['pre_controller'] = array(                                'class'    => 'LangClass',
                                'function' => 'set_lang',
                                'filename' => 'Langclass.php',
                                'filepath' => 'hooks',
);
复制代码
PHP复制代码
class LangClass extends Controller{
        function set_lang(){
                echo 'hooks is ok..';
        }
}
复制代码


然后再cofig中配置$config['enable_hooks'] = TRUE;
运行报错如下

hooks is ok..A PHP Error was encounteredSeverity: Notice
Message:  Undefined property: Home: session
Filename: controllers/home.php
Line Number: 13

如果$config['enable_hooks']改回 FASLE 一切正常!这个肿么回事  是我对hooks理解不对吗?
 楼主| 发表于 2012-3-31 15:41:24 | 显示全部楼层
本帖最后由 Ding 于 2012-3-31 16:09 编辑

。。
发表于 2012-3-31 15:44:32 | 显示全部楼层
我个人想法:
你的hook是pre_controller,但你load的LangClass又是继承自Controller,莫非是这里的原因?
P.S. 我也没用过hook,纯碎算是一个想法吧
 楼主| 发表于 2012-3-31 15:53:20 | 显示全部楼层
本帖最后由 Ding 于 2012-3-31 15:54 编辑


刚刚看到这么个 图 不知道hook是哪里加进去的。。貌似没有提到啊
发表于 2012-3-31 15:57:57 | 显示全部楼层
Ding 发表于 2012-3-31 15:53
刚刚看到这么个 图 不知道hook是哪里加进去的。。貌似没有提到啊

Hook 是在系统不同阶段装载的,所谓挂钩,必须要在需要的地方挂才可以,呵呵
 楼主| 发表于 2012-3-31 15:58:49 | 显示全部楼层
kissgxd 发表于 2012-3-31 15:44
我个人想法:
你的hook是pre_controller,但你load的LangClass又是继承自Controller,莫非是这里的原因?
P. ...

  谢谢哥们 确实是这里的问题。。。
PHP复制代码
class LangClass{
        function set_lang(){
                echo 'dfdfd';
        }
}
复制代码


看来 论坛里看见 有些帖子也不能轻信啊  还是要多多 实践。。。
发表于 2012-3-31 18:11:53 | 显示全部楼层
是谁教hook去extends Controller的?

pre_controller,post_controller_constructor及post_controller都是在控制器建立及完结时的额外指令,hooks指令中又建立控制器?完全不合逻辑!

pre_controller hook是建立控制器前的指令,指令又要求建立控制器,建立控制器时又得执行另一个pre_controller hook去建立控制器,...

若完全按逻辑执行,便是没完没了的去建立控制器,该怎办?
发表于 2012-10-13 10:01:51 | 显示全部楼层
pre_controller使用的时候只加载了.config,route,common.php
http://cier.phpfogapp.com/index.php/docs/app/route
用SESSION的话,这样就可以了
  1. class bootstrap
  2. {
  3.         public function __construct()
  4.         {
  5.             load_class('Router', 'core');
  6.         }
复制代码

本版积分规则