2017-09-04 61 views
0

我正在從頭開始編寫一個小應用程序,我想從packagist中使用一些軟件包。對於DI,我選擇了Auryn。如何以正確的方式使用Auryn進行DI?

現在,我瞭解到Auryn的第一件事情就是它試圖避免成爲依賴容器,並且在文檔中明確寫道,您不應該使用Auryn實例作爲容器,通過它通過你的應用程序的各種類。我認爲我應該在這個主類的構造函數中只有依賴關係,因爲我有一個「主」類作爲應用程序的所有骨幹的包裝,一個Injector對象(這是Auryin的主要對象),那麼在該類的構造函數中,我應該將所有的東西連接起來以便爲DI和反射做好準備。

另一種解決方法是不使用主類,只需在我的索引文件中使用乾淨的過程代碼,以與Auryn相同的方式連接所有接收器。

你有什麼建議是最好的方法?

回答

1

依賴注入背後的想法是收集如何你的各種類在同一個地方(你的DI容器類/ DI配置文件)「有線向上」的所有信息,而不是傳播,複製它在你的代碼。我認爲你的「Main」類只在你的Index.php中實例化一次,所以它不會將Auryn實例傳遞給Main的構造函數或使用Auryn獲取Main實例。

相關問題