Şimdi DI konseptini bir süredir kullanıyorum ama şimdi bağımlılık enjeksiyon kabı (DIC) kullanmaya başladım. Bir şey benim için net olmamasına rağmen.Bağımlılık Enjeksiyon Kabı (PHP) örneği nasıl korunur
DIC'imde (örneğin) bir Config nesnesi ve Request nesnesi var. Bir istek kapsamındaki bu nesnelerin (aynı kapsayıcıyı bu kapsayıcıdan istediğinde her zaman kullanılır) aynı kaldığını anlıyorum. Ancak bu, yalnızca aynı DIC örneğini tekrar kullandığımda olur.
DIC'mi sınıflarımdan nasıl geçirmeliyim? Router sınıfımda kullanmak istediğimi söyle, Router sınıfımın kurucusuna iletmem gerekiyor mu? Ancak, Yönlendirici sınıfı başka bir sınıfta oluşturulur ve bu da zaten bu DIC nesnesine sahip olmalıdır.
Veya bu DIC'nin bir tekilini oluşturmalı mıyım?
En iyi yol, DIC uygulamasını uygulamamın önyüklemesinde oluşturmak ve gerektiğinde iletmek mi? İyi bir yaklaşım gibi gözüküyor, ama aslında buna fazladan çaba sarfetmem gerekiyor. (Sınıflarım da çok test edilebilir) – jayv
Oldukça iyi bir fikir olabilecek tüm uygulamada kullanılan bir kapsayıcı için. Aksi takdirde, global değişkenler veya Singletonlar olarak açığa çıkarılması gereken kaynakları/nesneleri etkili bir şekilde kapsüller. Sınırlı kullanım alanına sahip 'yerel' DI kaplarına sahip olabileceğinizi unutmayın. Bunlar, gerekli olduğu kapsamda inly oluşturulmalıdır. – Mchl
Sınırlı kapsam kullanımının pratik bir örneğini bana verebilir misiniz? – jayv