【发布时间】:2014-03-15 02:05:18
【问题描述】:
我的应用程序是 POPO 的集合,我正在尝试使用 Zend Framework 2 服务管理器连接这些 POPO。
为了说明我的问题,举个例子:
$config = array(
'services' => array(
'my.app.serviceA' => new \My\App\Services\ServiceA(),
'my.app.serviceB' => new \My\App\Services\ServiceB(),
'my.app.manager.task' => new \My\App\Manager\TaskManager(),
),
);
我的 TaskManager 类看起来像这样:
class TaskManager {
protected $serviceA;
protected $serviceB;
public function setServiceA( \My\App\Service\ServiceA $serviceA )
{
$this->serviceA = $serviceA;
}
public function setServiceB( \My\App\Service\ServiceB $serviceB )
{
$this->serviceB = $serviceB;
}
}
如您所见,TaskManager 类同时依赖于ServiceA 和ServiceB。如何使用为ServiceA 和ServiceB 定义的服务名称使用服务管理器配置将这些服务注入my.app.manager.task?
更新:
我开始相信我根本不应该将 ServiceManager 组件用于我的目的,而应该使用 Zend DI 组件。
我的印象是 ServiceManager 是一个 ZF2“框架”组件,而 Zend\DI 似乎更像是一个通用的通用 DiC。因此,这可能是 ServiceManager 与 MVC 和 ModuleManager 组件(它们似乎也是“框架”组件)绑定关系的原因。
也许有人可以澄清一下?
【问题讨论】:
标签: dependency-injection zend-framework2 servicemanager