Hızlı Başlat Symfony DI (Bağımlılık Enjeksiyonu) Öğretici
Nedir bağımlılık enjeksiyon (DI)?
Bağımlılık enjeksiyon gevşek bir yazılım uygulaması içinde nesneler için izin veren bir tekniktir. Genel olarak eğer bir nesnenin başka bir dahili sistemleri için sıkı birleştiğinde önde gelen örneği olacaktır işlevine erişim gerektiren. Bağımlılık enjeksiyon uygulayarak gerekli nesneleri kullanıma hazır (IOC bazen de kontrol inversiyon anılacaktır) enjekte edilir. Aşağıdaki örneği ele alalım:
<? Php sınıf karar organı { kamu fonksiyonu makeDecision (dizi $ parametreler) { / / Veritabanı adaptör ihtiyacınız var $ Dp = yeni DecisionParameters (); ABD doları parameterScore = $ dp-> getScore (parametreler); / * ... Biraz daha karar mantığı ... * / return ($ parameterScore> 50); } }
Bu kod parçası DecisionParameters nesneye sıkıca lanacak söyledi. Yukarıdaki gibi bir şey olurdu gevşek bir biçimde yeniden yazma ....
<? Php sınıf karar organı { private $ _dp; public function __construct ($ dp) { $ This-> _dp = $ dp; } kamu fonksiyonu makeDecision (dizi $ parametreler) { ABD doları parameterScore = $ this-> _dp-> getScore (parametreler); / * ... Biraz daha karar mantığı ... * / return ($ parameterScore> 50); } }
Biz her zaman bir nesne, biz de bağımlılıkları örneğini çok bu geçmek zorunda örneği olduğu gibi karmaşıklık ekleyerek gevşek kod yararları kazanıyor rağmen. Örneğin, bu:
ABD doları seçim = new karar organı (); echo $ seçim-> makeDecision (array ('çaba' => 'düşük', 'geri dönüş' => 'yüksek'));
şu şekilde olacaktır:
$ Dp = yeni DecisionParameters (); ABD doları seçim = new karar organı (DP); echo $ seçim-> makeDecision (array ('çaba' => 'düşük', 'geri dönüş' => 'yüksek'));
Bu durum, bir sınıf için bağımlılıkları sayısı arttıkça daha da ağrılı hale gelir ve kendilerini bağımlılıkları bağımlılıkları ne olur? Bu oldukça hızlı bir şekilde, bir nesne yönetim kabus haline! Bağımlılık enjeksiyon kapları (veya çerçeveler) girin ...
Okuma 'Quick Start Symfony DI (Bağımlılık Enjeksiyonu) Tutorial' Devamı »
















































