2015-01-12 69 views
0

我想知道是否可以扩展我自己的控制器。我一直在研究基于Web的应用程序一段时间,现在我开始寻找每个希望使用应用程序的客户对应该如何工作的不同要求。我的想法是,如果我生成一个基础结构,然后扩展控制器来覆盖客户需要以不同方式工作的任何功能。Codeigniter - 扩展我自己的控制器

首先,你能告诉我我是否在正确的轨道上,其次,我该如何去扩展自己的控制器(如果可以的话)?我尝试过平常:

Class Reports2 extends Reports { } 

这并不工作,但我猜它是与我试图扩展文件的位置。我的文件结构如下:

Application 
--->controllers 
-------->control_panel 
------------>reports.php 
+1

这是一个伟大/快速文章扩展控制器。它可能有帮助吗? https://philsturgeon.uk/blog/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY/ – Damon

+0

@dragonslovetacos这是一篇优秀的文章。我在编写我的答案时正在考虑它 – MonkeyZeus

回答

1

如果我没有记错的话,那么你应该能够很容易地做到这一点:

reports2.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

require_once(APPPATH.'controllers/control_panel/reports.php'); 

Class Reports2 extends Reports { 

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

    public function index(){ 

    } 

} 
+0

嗨,谢谢,我试图使用PHP5的__autoload,它只是不想工作。以上将会很好。谢谢 – user1530205

+0

@ user1530205不客气。我从来没有在这个级别上看过自动加载控制器,但是为了更有效地控制两个独立的应用程序,我实现它时实现了独立的基础控制器。 – MonkeyZeus