Я пытаюсь внедрить внедрение зависимостей в наш проект Zend Framework.
В предыдущих проектах на основе APS.NET мы использовали StructureMap и перезаписывали DefaultControllerFactory
для внедрения зависимостей в контроллеры.
Я не уверен, где делать инъекции в Zend Framework? Я изучил Zend_Controller_Plugin_Abstract
и Zend_Controller_Action_Helper_Abstract
, но, похоже, ни один из них не позволяет мне вводить данные в текущий экземпляр контроллера.
Мне бы хотелось иметь возможность внедрять в конструктор текущего контроллера, как я это делаю в ASP.NET, но сеттеры приемлемы (я думаю).
Есть идеи о том, как сделать это или что-то подобное?
В конечном счете, я бы хотел сделать что-то вроде этого:
MyController extends Zend_Controller_Action {
// private vars
[...]
public function __constructor($authenticationService, $userRepository) {
$this->_authServ = $authenticationService;
$this->_userRepo = $userRepository;
}
}
Я хотел бы сделать что-то вроде того, что я делаю для stuctureMap:
For(authenticationService).Use(WhatEverClass);
или, может быть:
$currentController->authServ = $authenticationService;
$currentController->userRepo = $userRepository;
Вкратце: где мы можем перехватить создание (или получить экземпляр) текущего контроллера?
Аналогичный (без ответа) вопрос здесь
Спасибо!
/ Jon