Я успешно расширил класс CI_Controller, создав MY_Controller.php, который я разместил в каталоге application/core.
core/My_Controller.php выглядит примерно так:
class MY_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
}
}
Затем, когда я создаю обычные контроллеры, они выглядят примерно так:
class Home extends MY_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->view('home');
}
}
Я создаю задний конец администратора, и я хочу, чтобы вместо базового класса вместо контроллера My_Controller был создан базовый класс для контроллеров. Это значит, что у меня могут быть общие методы для админ-контроллеров (т.е. Authentication_check и т.д.).
Что я не могу решить, так это то, как я создаю другой контроллер, который расширяет CI_Controller.
Цель состоит в том, что контроллеры admin расширяют свой базовый класс, чем интерфейсные контроллеры.
Административный базовый контроллер будет выглядеть следующим образом:
class MY_Admin_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
}
}
Обычный контроллер для страниц администратора:
class Admin_home extends MY_Admin_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->view('admin_home');
}
}
Проблема заключается в том, что для расширения класса CI_Controller вы должны указать свой файл контроллера PREFIX_Controller.php и поместить его в каталог core/. Но я хочу два класса контроллера, и они не могут иметь одинаковое имя файла.