延遲加載依賴關係目前,我已經準備好了一個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