PHP için Kontrol Konteyner Inversion?

7 Cevap php

PHP kod TDD tarzı çalışıyorum ve (iyi bir IDE eksikliği dışında) benim en büyük engellerden biri ben sadece düzgün bütün davalarını nesneleri enjekte kendi araya kesmek IoC konteyner yapmak zorunda olmasıdır.

Herkes php bir IOC konteyner kullandı? Ben bulmak mümkün oldum Bütün PHP IOC on the ever-annoying phpclasses.org ve neredeyse hiçbir belgelerine ve bir Aşağıdakilerden çok şey var gibi görünüyor.

7 Cevap

Ben PHP için bazı DI Çerçeveleri oynadı, ama üretimde birini kullanmış değil. Bazı bağlantılar var:

  1. http://www.stubbles.net/ which I think is the oldest I tried
  2. http://php.xjconf.net/
  3. FLOW3 - I belive this one will become a very nice framework (its beta right now)

Belki Dependency Injection for Unit Tests in PHP bakabilirsiniz - Sen TDD için kullanmak istiyorsunuz sözü

Phemto yeniden geliştirilen ve oldukça umut verici görünüyor IMHO ediliyor.

Eğer bakmak isteyebilirsiniz birkaç diğer benzer projeler:

bucket (Yasal Uyarı: Bu birinin baş yazarı değilim)

php-port of picocontainer, uzun bir süre için yaklaşık edilmiş. Ben aktif bir daha deveoped ediliyor sanmıyorum, ama diğer taraftan, ben oldukça istikrarlı olduğuna inanıyorum. Ama baktım bu yana uzun bir zaman oldu.

A rather new project, I recently stumbled upon is Crafty. Emin değil kaç kişi olsa bunu kullanır.

Ilginç görünüyor I'm also watching sphicy, hangi.

Ayrıca, Java için Spring (tm) sonra modellenmiştir olan (http://marcelog.github.com/Ding) Ding denemek isteyebilirsiniz. Ayrıca AOP'yi destekler kontrolü ve bağımlılık enjeksiyon konteyner, tam bir inversiyon olduğunu

Ne Symfony Dependency Injection veya eşdeğer PHP 5.3 + component hakkında symfony 2.0 projesi.

PHP-DI başka bir bağımlılık enjeksiyon konteyner olduğunu.

Bu annotations ve minimal configuration, burada bir örnek ile bağımlılık enjeksiyon özellikleri:

class Foo {
    /**
     * @Inject
     * @var Bar
     */
    private $bar;
}

Kullanımı çok kolay, ve örneğin Zend Framework ile bütünleştirir.

(Evet ben bu çerçeve üzerinde çalışır)

Ben son altı ay için PHP IoC/DI Container adında Yüzey üzerinde çalışıyoruz. O hala çok fazla bir iş ama deployed in production, bir ay ve bir buçuk olmuştur ve bugüne kadar oldukça iyi çalışıyor.

Yüzey Spring Framework esinlenerek, ama akılda PHP güçlü ve sınırlamalar ile yazılır. Belgelere bu noktada oldukça az olduğunu, ancak bazı sample code bir birim test örneği gibi, var. Bu sizin TDD için kullanmak mümkün olabileceğini düşünüyorum bir şey mi?

Laravel 4 iyi IoC ve DI çerçeve vardır. Bir çerçeve kullanarak sakıncası yoksa Laravel 4 gitmek için yoludur