Расширение контроллера шаблонов в Kohana
-
19-09-2019 - |
Вопрос
У меня возникла небольшая путаница при попытке задним числом создать новый базовый контроллер для моего проекта.Если я не ошибаюсь, все, что мне нужно сделать, это создать файл в application/libraries
называется MY_baseController.php
содержащий следующее:
class baseController extends Template_Controller
{
public function __construct()
{
parent::__construct();
}
}
А затем переписать другие мои контроллеры, чтобы расширить baseController
вместо Template_Controller
:
class Frontpage_Controller extends Template_Controller
к
class Frontpage_Controller extends baseController
Однако когда я это делаю, доступ к Frontpage_Controller
предупреждает меня, что:
Класс «baseController» не найден...
Что мне здесь не хватает?
Решение
После некоторых возни я думаю, что мое решение - следующее...
Двигаться MY_baseController.php
от application/libraries
и в application/controllers
.Переименуйте его в base.php
и измените следующую строку:
class baseController extends Template_Controller
в
class Base_Controller extends Template_Controller
Теперь в вашем контроллере Frontpage расширьте Base_Controller
вместо baseController
.
Другие советы
Обязательно соблюдайте соглашения Kohana, чтобы все автоматически загружалось правильно!Подобные есть и в отношении помощников моделей и библиотек.
Кроме того, если вы хотите, чтобы ваша основная папка контроллера приложения была чистой, я бы предложил создать модуль Kohana специально для вашего приложения и поместить туда все ваши шаблоны и контроллеры расширений, чтобы держать их отдельно от ваших основных контроллеров.
Только не забудьте добавить модуль в свой конфигурационный файл!
Я знаю, что это старый вопрос, но я решил замолвить словечко.Вам просто нужно удалить префикс MY_ из имени файла, поскольку он действительно нужен вам только при расширении класса с суффиксом _Core в системной папке.Например, файл для
class Controller extends Controller_Core
будет называться MY_Controller.php.
В этом случае можно просто назвать файл baseController.php и поместить его в папку библиотек.
Без обид, но мне пришлось сильно удариться головой о компьютер, чтобы заставить его работать с Kohana 3.1.Наконец я понял, что синтаксис расширения контроллера шаблонов должен быть таким:
class Controller_Base extends Controller_Template