我創造了Zend框架3新的應用程序,我有一個關於設計模式Zend框架3個單身
問題如果沒有太多的細節進入這個應用程序將有一些服務,如,將連接到外部API,甚至在多個數據庫中,工作流也非常複雜,一個動作可以有多個流程,取決於幾個外部信息(用戶登錄,配置等)。
我知道依賴注入和Zend Framework 3服務管理器,但是我很擔心instanciating sereval服務,當流量實際上只使用其中的一些時,我們也會根據其他服務提供服務,爲此,我正在考慮使用單身人士。
Singleton真的是一個解決方案嗎?我正在尋找Zend Framework 3中的單用戶方法,並且還沒有找到一種簡單的方法,因爲我找不到在服務中使用服務管理器的方法,因爲我無法檢索服務管理器的實例在工廠系統之外。
什麼是在Zend Framework 3中實現單例的簡單方法?
「也不要在除了工廠以外的其他類中使用服務管理器。」但是如果我需要創建一個具有依賴性的類的新實例呢?例如,操作模型中的對象中的不同數據,而兩個對象都是同一類。如果不能訪問服務管理器,我將不得不手動執行所有實例化過程。我仍然需要這樣的事情,但我擔心未來的問題。 –
如果您需要服務中的其他服務,則需要使用構造函數注入該服務。 而且您不會操縱模型中的數據,至少在涉及其他類時不會。數據在服務類中準備並注入模型中。 如果您擔心未來需要創建的工廠數量,請不要擔心您習慣了:)稍後您將在編寫單元測試時感謝您自己。並且有[巫術技巧](https://xtreamwayz.com/blog/2015-12-30-psr7-abstract-action-factory-one-for-all),但他們有性能損失。 – xtreamwayz