Используйте помощника, чтобы действовать как фабрика для услуг:
- Вам нужно создать Action Helper и добавить в него EntityManager при регистрации экземпляра в Front Controller.
- Этот помощник действий получает в качестве параметра в методе
direct()
имя класса обслуживания, который должна создать фабрика.
- Внутри этого метода вы должны попытаться создать экземпляр запрошенного класса обслуживания и вернуть его (или выбросить исключение, если оно не найдено).
- Пусть ваши классы обслуживания получают в качестве параметра в конструкторе EntityManager и внедряют его во время конструирования на фабрике.
Остальное должно быть уже ясно для вас. В вашем контроллере вам нужно использовать только что-то вроде:
SomeController extends Zend_Controller_Action {
//...
public function someAction ()
{
$myService = $this->_helper->service( 'MyService' );
$myService->doSomething();
}
}