使用Service Locator将容器实例提供给Service是否错误?

| 我正在使用服务层,然后,我有很多服务,例如: 用户服务 文章服务 CommentService 授权服务 有时我需要使用另一个服务中的服务。 目前,我正在使用sfServiceContainer进行依赖项注入,并且在某些服务中注入了Doctrine 2实体管理器,但是,我正在考虑切换并注入容器实例,以便能够获取任何服务和EntityManager 。 但是我被困住了,我不确定这是个好主意。     
已邀请:
如果您的容器没有为您提供更好的方法,可以使用服务定位器。 如果使用像Ding(http://marcelog.github.com/Ding)之类的容器,则您的服务将是bean,并且可以在这些服务中实现IContainerAware接口,而不是使用服务定位器。 每当创建这些bean时,容器便会自行注入,然后您可以直接从这些服务/ bean内部$ this-> getBean(\'aService \')。在Ding的情况下,甚至还有一个Doctrine2集成的示例(包括EntityManager的注入)     

要回复问题请先登录注册