Zend framework 自动将资源注入控制器
我正试图在我们的Zend框架项目中实现依赖注入 在以前基于APS.NET的项目中,我们使用并覆盖了Zend framework 自动将资源注入控制器,zend-framework,dependency-injection,Zend Framework,Dependency Injection,我正试图在我们的Zend框架项目中实现依赖注入 在以前基于APS.NET的项目中,我们使用并覆盖了DefaultControllerFactory将依赖项注入控制器 我不确定在Zend框架中在哪里进行注入?我已经研究了Zend\u Controller\u Plugin\u Abstract和Zend\u Controller\u Action\u Helper\u Abstract,但它们似乎都不能让我注入当前实例化的控制器 我希望能够像在ASP.NET中一样注入到当前控制器的构造函数中,但是
DefaultControllerFactory
将依赖项注入控制器
我不确定在Zend框架中在哪里进行注入?我已经研究了Zend\u Controller\u Plugin\u Abstract
和Zend\u Controller\u Action\u Helper\u Abstract
,但它们似乎都不能让我注入当前实例化的控制器
我希望能够像在ASP.NET中一样注入到当前控制器的构造函数中,但是setter是可以接受的(我猜)
关于如何做到这一点或类似的事情,有什么想法吗
最终,我希望能够做到以下几点:
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;
简而言之:我们在哪里可以拦截当前控制器的创建(或获取其实例?
类似的(未回答的)问题
谢谢!
/JonZend Framework首席开发人员Matthew Weier O'Phinney的一篇文章似乎阐述了向控制器注入资源的想法: 另外,这是一个与Zend Framework集成的依赖项注入库。它与注释一起工作 它使您能够执行以下操作:
MyController extends Zend_Controller_Action {
/**
* @Inject
* @var MyService
*/
private $myService;
public function helloAction() {
return $this->myService->sayHello();
}
}
谢谢!这和我想要的非常相似,非常有用。