CakePHP - логика централизации контроллера - PullRequest
2 голосов
/ 06 октября 2011

Используя CakePHP, я обнаружил, что дублирую некоторый код между действиями контроллера.У меня есть дюжина или около того действий (принадлежащих различным контроллерам), которые все должны выполнять один и тот же запрос и set() те же 10 переменных для использования в конкретной компоновке.Они также должны обрабатывать любые ошибки таким же образом и отображать страницу ошибок.

Я знаю, что компоненты предназначены для централизации логики, используемой между контроллерами, но в моем случае этой логике необходим доступ к set()и render() методы контроллера.Какой предлагаемый подход к этой ситуации?

Спасибо, Брайан

Ответы [ 2 ]

0 голосов
/ 18 ноября 2011

Закончилось накатывать свой собственный слой бизнес-логики на этом.Пример ниже.Мысли / комментарии приветствуются.

class MyController extends AppController {

  public function my_action() {

     //  The BLL class is specific for this action and gets the entire 
     //  controller so has access to the set() method as well as components.
     $this->Bll = new MyActionLogic($this);
     $this->Bll->do_whatever();
  }
}
0 голосов
/ 06 октября 2011

Поместите логику в ваш класс AppController, с которого ваш контроллер должен расширяться.

Проверьте документы: http://book.cakephp.org/view/957/The-App-Controller

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...