В любом случае, я предпочел использовать решение include_once, так как считаю, что лучше иметь один файл на класс, а My_app_controller находится в папке application / controllers / my_app. (так что application / controllers / other_apps будет существовать)
ого следовалстатья Фила Осетрины с практическими рекомендациями, чтобы расширить базовый контроллер. Но я получаю еще некоторые ошибки.
Мои 3 класса:
// application/libraries/MY_Controller.php
class MY_Controller extends Controller{
public function __construct(){
parent::__construct();
}
}
// application/libraries/Public_Controller.php
class Public_Controller extends MY_Controller{
public function __construct(){
parent::__construct();
}
}
// application/controllers/user.php
class User extends Public_Controller{
public function __construct(){
parent::__construct();
}
}
Неустранимая ошибка: класс 'Public_Controller' не найден в /srv/www/xxx/application/controllers/user.php в строке 2
Любопытно, что следующий фрагмент работает, если я напрямую простираюсь отMY_Controller
:
// application/controllers/user.php
class User extends MY_Controller{
public function __construct(){
parent::__construct();
}
}
Я загрузил контроллеры через__autoload()
или вручную. Контроллеры загружены успешно.
CI-версия: 1.7.3