您可能可以使用自己的__autoload()
函数来解决这个问题,Phil Sturgeon 在这篇文章中介绍了类似的内容。
例如,以下按预期工作:
索引.php
<?php
/**
* Look for any non-CI class in the libraries folder
* @param type $class
*/
function __autoload($class)
{
if(strpos($class, 'CI_') !== 0)
{
@include_once( APPPATH . 'libraries/'. $class . EXT );
}
}
[Rest of index.php as normal]
库/MY_Controller.php
<?php
class MY_Controller extends CI_Controller {
function __construct() {
parent::__construct();
echo 'my_controller';
}
}
控制器/nickbarrett.php
<?php
class nickbarrett extends MY_Controller {
function __construct() {
parent::__construct();
echo 'extending my_controller';
}
public function index() {
echo 'index';
}
}
这意味着您不必在系统文件夹中放置任何内容。可能还有几个地方可以放置__autoload()
函数,但 index.php 似乎是最简单的。
注意:我没有在应用程序包场景中尝试过,所以如果编辑每个应用程序的 index.php 对您来说可能不可行,我很感激。