我正在将Symfony DIC集成到zend框架应用程序中,除了父服务之外,这很好。Symfony DIC和父服务不起作用
在我的DIC配置中,我有一个父服务PC_Service,它将被我的所有服务扩展。 问题是实体管理器在扩展PC_Service的服务中不可用(NULL)。当我通过service.stats注入entitymanager时,entitymanger设置正确。
...
<service id="pc.service" class="PC_Service" abstract="true">
<call method="setEntityManager">
<argument type="service" id="doctrine.entitymanager" />
</call>
</service>
...
<service id="service.stats" class="Application_Service_Stats" parent="pc.service" />
...
PC_Service
abstract class PC_Service
{
protected $_em;
public function setEntityManager($entityManager)
{
$this->_em = $entityManager;
}
}
Application_Service_Stats
class Application_Service_Stats extends PC_Service
{
... $this->_em should be set here.
}
我希望有人能告诉我什么,我做错了。
有没有比使用symfony2更简单的将学说融入zend的方法? – Ascherer 2012-03-12 06:11:57
这不是关于整合原则,而是关于依赖注入 – tom 2012-03-12 06:14:06
你最终找到解决方案吗?我遇到了同样的问题,并且正在通过Symfony代码进行分析(不幸的是,至今没有多少运气) – 2012-05-19 17:34:55