Kohana 3: Использование пользовательского контроллера

В KO2 у меня был файл с именем library/CUSTOM_Controller.php, в котором я хранил общие методы, которые я хотел сделать доступными для всех контроллеров.

Есть ли аналогичный способ сделать это в KO3? Я не вижу ничего в документах (таких как они есть) о переопределении контроллера.

Спасибо!


person Eli    schedule 03.07.2010    source источник


Ответы (1)


А вот и философия Kohana 3. Если вы посмотрите в этот SYSPATH/classes/controller.php файл, вы увидите, что там определен пустой класс, который расширяет Kohana_Controller класс. Это означает, что вы можете перезаписать класс Controller. Создайте свой собственный класс контроллера, расположенный APPPATH/classes/controller.php (kohana всегда будет сначала искать файл в APPPATH).

class Controller extends Kohana_Controller {
  public function myMethod(){
    // ...
  }
}

$this->myMethod() будет доступен во всех ваших контроллерах, и ничего из ядра Kohanas не будет потеряно.

person Anpher    schedule 03.07.2010
comment
Отлично, спасибо! Однако есть один вопрос: есть ли способ сделать это через папку приложения, поскольку я использую папку sys для нескольких приложений и могут нуждаться в разных методах, доступных в разных приложениях? - person Eli; 04.07.2010
comment
Вы никогда не должны изменять системные файлы, расширение должно быть добавлено в папку application/classes/. - person shadowhand; 05.07.2010
comment
Мне нравится эта функция! Контроллер расширен по умолчанию. - person Sterex; 17.04.2012