У меня есть собственный класс контроллера с именем MY_Controller
, он расширяет CI_Controller и работает нормально. Он находится в приложении / ядре и имеет пользовательские функции для загрузки просмотров на моем сайте.
Я использую абстрактный класс My_app_controller
, который расширяет MY_Controller
для конкретного поведения my_app, я хочу, чтобы каждый контроллер в my_app расширял этот абстрактный класс. (Я использую разные приложения на сайте, поэтому некоторые приложения будут расширяться My_app_controller
, а другие приложения будут расширяться My_other_apps_controllers
)
Но когда я пытаюсь расширить My_app_controller
с любого контроллера в моем приложении, "Main_app_controller extends My_app_controller
" создает Класс 'My_app_controller' not found исключение .
Я нашел два решения:
использовать include_once в файле Main_app_controller.php.
include_once APPPATH.'controllers/path/to/My_app_controler.php';
нарушить правило "один класс на файл" средства воспламенения кода и определить мои My_app_controller
просто в том же файле MY_Controller
(в приложении / ядре).
Руководство говорит:
Используйте отдельные файлы для каждого класса, если классы не
связанные
Ну ... они есть.
В любом случае, я предпочел использовать решение include_once, так как считаю, что лучше иметь один файл на класс, а My_app_controller находится в папке application / controllers / my_app. (поэтому приложение / controllers / other_apps будет существовать)