如何在Codeigniter中创建两个父控制器?

时间:2010-10-12 09:05:37

标签: php oop codeigniter

我想创建两个父控制器:一个用于管理员,一个用于用户站点。他们必须扩展一个常规的Controller类,但每个都必须做不同的事情。

2 个答案:

答案 0 :(得分:4)

我写了一篇文章,展示你是如何做到这一点的。

http://philsturgeon.co.uk/news/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY

您需要在config.php中创建一个__autoload()函数,或者直接在类定义上面包含基本控制器。

答案 1 :(得分:0)

这很简单。执行以下操作:

  1. 转到以下目录:your_ci_app/application/core/并创建一个名为MY_Controller.php的php文件(此文件将位于您的顶级父类所在的位置)
  2. 打开MY_Controller.php并添加多个类,如下所示:

    class Admin_Parent extends CI_Controller {
        public function __construct() {
            parent::__construct();
        }
    
        public function test() {
            var_dump("from Admin_Parent");
        }
    }
    
    class User_Parent extends CI_Controller {
    
        public function __construct() {
            parent::__construct();
        }
    
        public function test(){
            var_dump("from User_Parent");
        }
    
    }
    
  3. 在此目录your_ci_app/application/controllers/下创建子控制器。我会称之为adminchild.php

  4. 打开adminchild.php并创建控制器代码,确保扩展父类的名称,如下所示:

    class Adminchild extends Admin_Parent {
    
        function __construct() {
            parent::__construct();
        }
    
        function test() {
            parent::test();
        }
    
    }