【发布时间】:2012-12-04 07:05:10
【问题描述】:
我正在尝试在 Zend Framework 项目中实现依赖注入。
在之前基于 APS.NET 的项目中,我们使用 StructureMap 并覆盖了 DefaultControllerFactory 以将依赖项注入控制器。
我不确定在 Zend Framework 中的何处进行注入?我查看了Zend_Controller_Plugin_Abstract 和Zend_Controller_Action_Helper_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;
简而言之:我们在哪里可以拦截当前控制器的创建(或获取其实例)?
类似的(未回答的)问题here
谢谢! /乔恩
【问题讨论】:
标签: zend-framework dependency-injection