はい、できます。そして、コードを再利用する良い方法です。
独自のコントローラーを作成する
たとえば、ユーザー用のコントローラーと管理者用のコントローラーが必要な場合などです。application/coreフォルダーに移動し、そこに作成します。
class UserController extends CI_Controller
{
function __construct()
{
parent::__construct();
if ( !is_logged() )
{
show_error('get out of here') // sorry, you are not logged
}
// load necessary libraries or helpers for logged user
}
}
また、管理領域のコントローラーが必要な場合は、次のように実行できます。
class AdminController extends CI_Controller
{
function __construct()
{
parent::__construct();
if ( !is_admin() )
{
show_error('only for admins') // sorry, you are not admin
}
// load necessary libraries or helpers for admin
}
}
コントローラーをシステムにロードする
コントローラを CI システムの一部としてロードするには、それらが存在する場所を指定する必要があります。したがって、application/config/config.phpファイルの最後に次のように記述します。
function __autoload($class)
{
if (strpos($class, 'CI_') !== 0)
{
if (file_exists($file = APPPATH . 'core/' . $class . EXT))
{
include $file;
}
else if (file_exists($file = APPPATH . 'libraries/' . $class . EXT))
{
include $file;
}
}
}
コントローラーをテストする
これで、上記のコントローラーの 1 つを拡張して、Web サイトの領域に応じて使用できるようになりました。
class Logout extends UserController{
また
class EditUser extends AdminController{