获取继承的类的构造函数

时间:2015-12-14 19:14:10

标签: php codeigniter inheritance

我在/ library中有这个类。

class CI_Decorator extends CI_Controller {


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

}

我得到的错误非常奇怪:

Message: Undefined property: CI_Decorator::$load
Filename: libraries/Form_validation.php
Backtrace:
File: /application/libraries/CI_Decorator.php

因为我尝试使用

获取CI_Controller构造函数
parent::__construct();

更新:

我正在尝试实现此Decorator,但我认为是为早期版本的CI开发的。

1 个答案:

答案 0 :(得分:1)

将文件名更改为Decorator.php,并在类文件中使用此文件。

class Decorator{
  //there is no parent so you cannot call a parent constructor
  //public function __construct() {
      //parent::__construct();
  //}

}

当您希望替换CodeIgniter的核心类之一时,仅使用“CI_”作为文件(或类)名称的前缀。如果不存在具有该名称的核心类,则加载将失败。

如果要扩展本机类,那么您将使用MY_或您在config.php中设置的前缀

为类和文件名添加前缀。
$config['subclass_prefix'] = 'YOURPREFIX_';

不止一次扩展CI_Controller也令人沮丧,你会遇到一个不同但相关的问题。您将在Stack Overflow上找到该问题的许多答案。在上面的搜索框中使用搜索词“[codeigniter] extends CI_controller”(不带引号)