在很多情况下,框架类并不能满足项目的需求,这时候需要程序要自定义一些类,比如说基类等等,对比了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目录自定义的类就可以被继承了。

相关文章:

  • 2021-12-05
  • 2021-11-14
  • 2021-06-22
  • 2021-06-20
  • 2021-11-06
  • 2022-12-23
  • 2021-05-19
  • 2022-12-23
猜你喜欢
  • 2021-10-08
  • 2022-12-23
  • 2021-11-08
  • 2021-06-19
  • 2021-12-17
  • 2022-01-10
  • 2022-12-23
相关资源
相似解决方案