非常教程

Codeigniter 3参考手册

用户指南 | User guide: General

创建核心系统类 | Creating Core System Classes

每次CodeIgniter运行时,都会有几个基类作为核心框架的一部分自动初始化。但是,可以用自己的版本交换任何核心系统类,甚至扩展核心版本。

大多数用户永远不会需要这样做,但是对于那些想要显著改变CodeIgniter核心的用户来说,替换或扩展它们的选项确实存在。

处理核心系统类有很多含义,所以在尝试之前一定要知道自己在做什么。

系统类列表

以下是每次运行CodeIgniter时调用的核心系统文件的列表:

  • 基准
  • 配置
  • 控制器
  • 例外
  • 钩钩
  • 输入
  • 语言
  • 装载机
  • 原木
  • 输出量
  • 路由器
  • 保安
  • 乌里
  • UTF8

替换核心类

若要使用您自己的系统类而不是默认的系统类,只需将您的版本放置在本地中即可。应用/核心/目录:

application/core/some_class.php

如果该目录不存在,则可以创建它。

任何与上面列表中的文件名相同的文件都将被使用,而不是通常使用的文件。

请注意,您的类必须使用CI作为前缀。例如,如果您的文件名为input.php,那么类将被命名为:

class CI_Input {

}

扩展核心类

如果您需要做的就是向现有的库添加一些功能--也许添加一两个方法--那么用您的版本替换整个库就太过分了。在这种情况下,最好只是扩展类。扩展类与替换类几乎相同,但有几个例外:

  • 类声明必须扩展父类。
  • 您的新类名和文件名必须以[医]%28此项目是可配置的。见下文%29。

例如,要扩展本机输入类,您将创建一个名为application/core/my的文件[医]php,并使用以下方法声明类:

class MY_Input extends CI_Input {

}

如果需要在类中使用构造函数,请确保扩展父构造函数:

class MY_Input extends CI_Input {

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

提示:类中将使用与父类中的方法命名相同的任何函数,而不是本地函数(这称为“方法重写”)。这使您可以大幅改变CodeIgniter内核。

如果要扩展Controller核心类,请确保在应用程序控制器的构造函数中扩展新类。

class Welcome extends MY_Controller {

        public function __construct()
        {
                parent::__construct();
                // Your own constructor code
        }

        public function index()
        {
                $this->load->view('welcome_message');
        }
}

设置自己的前缀

若要设置自己的子类前缀,请打开application/config/config.php存档并查找此项目:

$ config ['subclass_prefix'] ='MY_';

请注意,所有本机CodeIgniter库都以CI_为前缀,因此请勿将其用作前缀。

Codeigniter 3

CodeIgniter 是一个PHP MVC框架,特点是超轻量级、有数据加密、有灵活URI路由等。对于 PHP 程序员来说,它小巧但功能强大。

主页 https://codeigniter.com/
源码 https://github.com/bcit-ci/CodeIgniter
版本 3
发布版本 3.1.5