Ben Dependency Injection, Kontrol İnversiyon ve IoC konteynerler üzerinde çok okuyordum. Dinamik dillerde Ben de öncelikle programı (işte PHP, evde Python). İşte ben buluyorum şeyler var, ama bana hep birlikte bir parçası olarak doldurmak için bu boşlukların bir çok şey bırakıyor:
- Why are IOC containers unnecessary with dynamic languages?
- Why do I need an IoC container as opposed to straightforward DI code?
- Advantages an IoC container provides beyond simple DI (blog post)
Peki ben okuyorum: bu dinamik dillerde DI gerçekleştirmek için çok daha kolay, çünkü IoC kapları, statik dillerde çok daha büyük bir anlaşma vardır. Ama onlar da sizin için bağımlılıkları yönetimi ve birlikte el dize bir düzine nesneleri sahip sizi kurtaran gibi, çok DI ötesinde faydalar sağlar. Ve, bu arada, bunlar karmaşıktır, bu nedenle bunları kendiniz yapmaya kalkmayın (ama iyi olanlar PHP için var).
Bu bilgiler tür ... sıkışmış beni bırakır gibi hissediyorum. Ben ne yapacağım? Ben çok karmaşık bağımlılıkları ile, bir çok büyük kod temeli çalışmak (ve üstlenmeden için muhtemelen güçlü bir ihtiyaç, ama bu başka bir paralel mesele). Biz şimdiye kadar DI uygulanması çok kötü yaptık, ve ben gerçekten bize doğru yönde açmak için çalışıyorum. Sadece dinamik diller ve IoC açısından (ya da en azından IoC konteynerlerine) orada bir şey var gibi görünüyor.
Ben ilkeler üzerinde daha iyi ele almak sonra "el-çekimi" olmanın kez bir araya bağımlılıkları, ve daha sonra bir kap içinde otomatik endişelenecek daha iyi miyim? Bu benim kendi basit IoC kapsayıcı uygulamaya değer mi? Ya da fayda PHP maliyeti sadece sonuçta değer değil mi?