__autoload()
おそらく、独自の関数を使用してこれをいじることができます。Phil Sturgeon がこの投稿で同様のことをカバーしています。
たとえば、次は期待どおりに機能します。
index.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 を編集するのが現実的ではない場合は感謝します。