我是ZendFramework 2和整個DI創意的新手。ZF2:完成正確的依賴注入
以下是我需要實現:
- 創建延伸的單一AbstractModel
- 供應是AbstractModel使用DI與依賴關係(在我的學說實體管理器)
- 使用很多模型類的祖先類,只要我需要它們作爲普通類
爲了更好地解釋3.讓我們看看這個例子:
class Ancestor extends Parent { }
在控制器,或任何地方的理想:
$ancestor = new Ancestor();
$ancestor->doStuffWithEntityManager();
Uppon初始化祖先一定已經知道注射的資源。
這甚至可能嗎?如果不使用它的默認形式,我可以通過一些服務管理器等初始化祖先,只要我不需要指定每個祖先。我需要告訴zend:將這個和那個注入到擴展/實現X的每個類中。
任何想法?
P.S .:正如我所說我很新,所以請指定配置/類文件,我必須添加每一個示例代碼。
相當。我的實現(當前工作)是相似的。我註冊一個db服務並在其中定義一個'get($ class)'方法。然後我用我需要的模型類在控制器中調用服務的get方法。服務工廠創建一個實例並注入我指定的依賴關係。我不確定這是否是正確的DI,但我想這已經足夠了。 –
@Sam你有任何解決循環依賴的案例嗎?例如在你的回答中,如果'Doctrine \ ORM \ EntityManager'需要一個'SomeService'的實例呢?會有一個永無止境的遞歸循環。 – binnyb
@binnyb聽起來像不好的設計:)除了將依賴關係重構爲有意義的東西外,沒有其他解決方案。可能需要適當的examamples來幫助你。 – Sam