学习CodeIgniter框架之旅(二)继承自定义类

  在很多情况下,框架类并不能满足项目的需求,这时候需要程序要自定义一些类,比如说基类等等,对比了TP框架,CI框架目前好像还没加入命名空间,这点TP做得比较好,不用特殊的处理就可以随便继承自定义的类,只要处理好命名空间就行,在没有加入命名空间的CI框架怎么办呢?

  思路:在入口文件做文章,这是在网上找到的办法;

  在入口文件加入自动加载的代码:

function __autoload($class) {
	if (strpos($class, 'CI_') !== 0) {
		@include_once(APPPATH . 'common/' . $class . EXT);
	}
}

  个人觉得这种方法很不错,那这是怎么实现的呢?

  • 因为CI框架类都会自带一个CI_作为类的前缀,因此只要自定义的类不要用CI_作为前缀是可以区分出来的,然后引入进来即可;
  • 代码如下:
// 自定义公共目录路径
define('COMMONPATH', APPPATH . 'common' . DIRECTORY_SEPARATOR);

function __autoload($class) {
	if (strpos($class, 'CI_') !== 0) {
		@include_once(COMMONPATH . $class . '.php');
	}
}

  这样在common目录自定义的类就可以被继承了。

原文地址:https://www.cnblogs.com/timothy-lai/p/6207267.html