延迟加载依赖关系目前,我已经准备好了一个Symfony2 DI容器实例,并提供了一个服务以及它的所有依赖关系。比方说,例如,我有一个Car类,它具有Engine和Lights作为依赖关系。用symfony DI
在我当前的设置中,这两个依赖关系都是在创建Car对象时通过setter注入自动创建的,但很可能我的Car对象不需要它的指示灯,因此它并不明确需要创建这个依赖关系的一个实例。
有没有办法在Symfony DI中实现这一点?因此,只需在需要时创建Lights对象的实例?我的猜测是它会像Doctrine这样的代理实现,但据我所知,它在Symfony DI中不存在。
那么在我的情况下,我正在将DI组件独立安装到一个较旧的ZF项目中。我有几个服务类(AdminService,UserService,...),它们都具有像DBAL,ACL等依赖项...这些是服务类正常运行的实际要求。另一方面,像Form和Model这样的实例只能在一些ServiceClass的方法中使用。这些是“条件”依赖关系。 我在想这也是几乎不可能的,除非Symfony DI有一个代理系统,像它的实体一样使用教条。 – ChrisR 2012-07-11 06:33:24