欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

CI怎么通过hook获取控制器和方法名?

程序员文章站 2022-05-16 14:18:39
...

需要通过hook来获取控制器和方法名,我把钩子挂在了CI_Controller在钩子里使用
$this->router->class会报错,我想到的解决办法是使用$_SERVER ,如何使用router而不会报错呢?

更新时间2016年5月29日 20:20:55
最后决定重新挂在CodeIgniter.php里面。请看图。
CI怎么通过hook获取控制器和方法名?
CI怎么通过hook获取控制器和方法名?

class Fun_Log{
    public function fun_action(){
        var_dump($this->router);
    }    
}

但是就报错了
CI怎么通过hook获取控制器和方法名?

回复内容:

需要通过hook来获取控制器和方法名,我把钩子挂在了CI_Controller在钩子里使用
$this->router->class会报错,我想到的解决办法是使用$_SERVER ,如何使用router而不会报错呢?

更新时间2016年5月29日 20:20:55
最后决定重新挂在CodeIgniter.php里面。请看图。
CI怎么通过hook获取控制器和方法名?
CI怎么通过hook获取控制器和方法名?

class Fun_Log{
    public function fun_action(){
        var_dump($this->router);
    }    
}

但是就报错了
CI怎么通过hook获取控制器和方法名?

已解决。原来问题原因起在hooks.php里$hook['这里必须是CI的挂载点'],之前还以为这个名称可以自己定,然后在哪里把这个hook挂上去。所以才报错。另外需要先使用$this->CI = &get_instance();来获取CI的对象,不然调用不了CI自带的类

$class = $this->router->fetch_class();
$method = $this->router->fetch_method();
相关标签: php php框架 ci