Domanda

Sto cercando di codificare lo stile TDD in PHP e uno dei miei maggiori ostacoli (a parte la mancanza di un IDE decente) è che devo creare il mio contenitore IoC hackerato insieme solo per iniettare correttamente tutti i miei oggetti simulati.

Qualcuno ha utilizzato un contenitore Ioc in PHP?Tutto quello che sono riuscito a trovare è PHP IOC sul sempre fastidioso phpclasses.org e sembra non avere quasi alcuna documentazione e non avere molto seguito.

È stato utile?

Soluzione

Ho giocato con alcuni DI Framework per PHP, ma non ne ho usato uno in produzione.Avere alcuni collegamenti:

  1. http://www.stubbles.net/ che penso sia il più vecchio che ho provato
  2. http://php.xjconf.net/
  3. FLUSSO3 - Credo che questo diventerà un framework molto carino (la sua beta in questo momento)

Hai detto che lo avresti usato per TDD, quindi forse dai un'occhiata Iniezione di dipendenze per test unitari in PHP

Altri suggerimenti

Femtone è in fase di sviluppo e, secondo me, sembra piuttosto promettente.

Alcuni altri progetti simili, che potresti voler guardare:

secchio (Disclaimer:Sono l'autore principale di questo)

IL porta php di picocontainer, esiste da molto tempo.Non penso che venga più sviluppato attivamente, ma d'altra parte credo che sia abbastanza stabile.Però è passato molto tempo dall'ultima volta che l'ho guardato.

Un progetto piuttosto nuovo, in cui mi sono imbattuto di recente è Astuto.Non sono sicuro di quante persone lo usino però.

Anch'io sto guardando sphicy, che sembra interessante.

Potresti anche provare Ding (http://marcelog.github.com/Ding) che è modellato su Spring(tm) per Java.È un'inversione completa del contenitore di controllo e inserimento delle dipendenze, che supporta anche AOP

Cosa ne pensi riguardo a Inserimento delle dipendenze di Symfony o l'equivalente PHP 5.3+ componente dal progetto symfony 2.0.

PHP-DI è un altro contenitore per l'iniezione di dipendenze.

È dotato di iniezione delle dipendenze annotazioni E configurazione minima, ecco un esempio:

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

È molto facile da usare e si integra, ad esempio, con Zend Framework.

(sì, lavoro su questo framework)

Ho lavorato su a Contenitore PHP IoC/DI denominato Substrato negli ultimi sei mesi.È ancora un lavoro in corso, ma lo è stato impiegato in produzione da un mese e mezzo e finora ha funzionato abbastanza bene.

Substrate è ispirato a Spring Framework, ma scritto pensando ai punti di forza e ai limiti di PHP.La documentazione è piuttosto minima a questo punto, ma ce n'è Codice d'esempio, incluso un esempio di test unitario.È qualcosa che pensi di poter utilizzare per TDD?

Laravel 4 ha il miglior framework IoC e DI.se non ti dispiace usare un framework, Laravel 4 è la strada da percorrere

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top