Ding 发表于 2012-3-31 15:31:20

开启config下的enable_hooks 报sission错误

本帖最后由 Ding 于 2012-3-31 15:32 编辑

今天尝试了下 hook相关的东西 在项目添加了 $hook['pre_controller'] = array(                              'class'    => 'LangClass',
                              'function' => 'set_lang',
                              'filename' => 'Langclass.php',
                              'filepath' => 'hooks',
);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理解不对吗?

Ding 发表于 2012-3-31 15:41:24

本帖最后由 Ding 于 2012-3-31 16:09 编辑

。。

kissgxd 发表于 2012-3-31 15:44:32

我个人想法:
你的hook是pre_controller,但你load的LangClass又是继承自Controller,莫非是这里的原因?
P.S. 我也没用过hook,纯碎算是一个想法吧

Ding 发表于 2012-3-31 15:53:20

本帖最后由 Ding 于 2012-3-31 15:54 编辑

http://codeigniter.org.cn/user_guide/images/appflowchart.gif
刚刚看到这么个 图 不知道hook是哪里加进去的。。貌似没有提到啊

Hex 发表于 2012-3-31 15:57:57

Ding 发表于 2012-3-31 15:53 static/image/common/back.gif
刚刚看到这么个 图 不知道hook是哪里加进去的。。貌似没有提到啊

Hook 是在系统不同阶段装载的,所谓挂钩,必须要在需要的地方挂才可以,呵呵

Ding 发表于 2012-3-31 15:58:49

kissgxd 发表于 2012-3-31 15:44 static/image/common/back.gif
我个人想法:
你的hook是pre_controller,但你load的LangClass又是继承自Controller,莫非是这里的原因?
P. ...

:handshake:handshake谢谢哥们 确实是这里的问题。。。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的话,这样就可以了class bootstrap
{
      public function __construct()
      {
            load_class('Router', 'core');
      }
页: [1]
查看完整版本: 开启config下的enable_hooks 报sission错误