273579540 发表于 2011-5-6 21:49:40

收藏,看看先

it577net 发表于 2011-6-4 20:31:55

Fatal error: Class 'MY_Controller' not found in E:\php\www\bobojz\application\controllers\Child.php on line 2
我的也是找不到类。。。

wind4 发表于 2011-8-25 17:41:02

2.0.2版,MY_Controller.php好像是放在application/core目录。
并且是继承CI_Controller

CIadmin 发表于 2012-2-20 17:57:53

;P;P是的 2.02 要把MY_Controller.php放在application/core目录。
然后控制器 就可以继承MY_Controller了

justdoit 发表于 2012-2-29 15:28:50

手册上说的是要使用你自己的系统类替换默认类只需简单的将你自己的 .php 文件放入本地文件夹 application/core。是放入到application/core下面啊。

kyzy_yy_pm 发表于 2012-5-31 10:56:31

按照楼主的方式测试,没通过,class_exists的确存在,但是继承却无法实现,而且就算能够实现那么理论上也没有在controllers中制作父类更理想,所以,我的方式是这样:

controllers/welcome.php中代码如下:

require_once(APPPATH . 'controllers/My_Controller.php');
class Welcome extends My_Controller
{
...

----------------------------------------------
自定义父类(My_Controller.php)中代码如下:

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

class My_Controller extends CI_Controller
{
    public function __construct()
    {
      parent::__construct();
      if (method_exists($this, '_init')) {
            $this->_init();
      }
    }
}


如此除了多了一句require_once代码,其它的都是非常理想的,而且解决了单继承的问题,下面的观众可以扔鸡蛋了

榴弹宁 发表于 2012-7-4 11:10:48

kyzy_yy_pm 发表于 2012-5-31 10:56 static/image/common/back.gif
按照楼主的方式测试,没通过,class_exists的确存在,但是继承却无法实现,而且就算能够实现那么理论上也没 ...

放在controllers下的话,会被外部访问到吧?

qq237661791 发表于 2014-9-25 11:39:46

puras 发表于 2010-12-17 23:53
我也是按照这种方式实现的。
可是现在有个问题:
这种方式,是扩展现有类,你只能扩展一个


我也遇到了这个问题,发现设计的简单,但是不灵活啊,我直接用MY_Controller里面写两个类,或者用require包含新的文件(针对一个类一个文件的强迫症)

57sy.com(隐身中 发表于 2014-10-29 15:28:39

不过CI的扩展性 不用说强大!!
页: 1 [2]
查看完整版本: 让CI控制器可以继承自定义类