Сервисный уровень ZF1 Doctrine2 - PullRequest
       12

Сервисный уровень ZF1 Doctrine2

1 голос
/ 05 сентября 2011

Я ищу хороший пример того, как правильно реализовать Service Layer с Zend Framework и Doctrine2

Я видел некоторые реализации, но все они имеют доступ к EM из контроллера при создании экземплярасервис, и я думаю, что это может быть неправильно или нет?

Пример: http://cobbweb.me/2010/11/integrate-doctrine-2-zend-framework-application/

Также я получил этот проект , но не совсем уверен, как его реализовать

Спасибо

1 Ответ

1 голос
/ 12 сентября 2011

Используйте помощника, чтобы действовать как фабрика для услуг:

  • Вам нужно создать Action Helper и добавить в него EntityManager при регистрации экземпляра в Front Controller.
  • Этот помощник действий получает в качестве параметра в методе direct() имя класса обслуживания, который должна создать фабрика.
    • Внутри этого метода вы должны попытаться создать экземпляр запрошенного класса обслуживания и вернуть его (или выбросить исключение, если оно не найдено).
  • Пусть ваши классы обслуживания получают в качестве параметра в конструкторе EntityManager и внедряют его во время конструирования на фабрике.

Остальное должно быть уже ясно для вас. В вашем контроллере вам нужно использовать только что-то вроде:

SomeController extends Zend_Controller_Action {

    //...
    public function someAction ()
    {
        $myService = $this->_helper->service( 'MyService' );
        $myService->doSomething();
    }
 }
...