Codeigniter:使用' require_once'从其他人调用一个控制器的方法

时间:2016-06-16 16:22:30

标签: php codeigniter require require-once

我在codeigniter中找到一种方法来将一个控制器的方法调用到其他控制器

我找到如下文章:

1. Controller A 
   class A extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
    }
    function custom_a()
    {
    }
}

2. Controller B 

   class B extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
    }
    function custom_b()
    {
            require_once(APPPATH.'controllers/a.php'); //include controller
            $aObj = new a();  //create object 
            $aObj->custom_a(); //call function
    }
}

上面的代码是由prash.patil在另一个堆栈溢出文章中编写的。但Deep Kakka添加评论:"包含这样的文件,这是好方法吗?"

使用' require_once'有什么问题?在上述情况下?我认为这是重用代码的好方法。

2 个答案:

答案 0 :(得分:0)

我不确定将require_once与控制器一起使用。满足您的需求 我建议你两种方式

  1. 使用HMVC Codeigniter Framework
  2. 将控制器加载为库
  3. 解释

    1. 使用HMVC Codeigniter Framework
    2. bitbucket.org下载HMVC框架。您可以使用modules::run()函数

      在文件内部调用控制器
      1. 将控制器加载为库
      2. 最常用的方法。将控制器分配给库。并使用库调用方法。

        # Assigning Controller 
        $this->load->library('../controllers/a');
        
        # Calling Methdod
        
        $this->a->methodname();
        

答案 1 :(得分:0)

如果你想在多个控制器中使用的类中有一组方法,那么好的方法是在APPPATH.'libraries/Custom_lib.php'中创建一个自定义库(在任何你认为合适的地方命名),你可以在任何控制器中使用它需要特定代码的地方。有关documentation中自定义库的更多信息。