Pregunta

Estoy tratando de codificar el estilo TDD en PHP y uno de mis mayores obstáculos (aparte de la falta de un IDE decente) es que tengo que crear mi propio contenedor IoC pirateado solo para inyectar todos mis objetos simulados correctamente.

¿Alguien ha usado un contenedor Ioc en PHP?Todo lo que he podido encontrar es PHP IOC en el siempre molesto phpclasses.org y parece casi no tener documentación y no tener muchos seguidores.

¿Fue útil?

Solución

Jugué con algunos DI Frameworks para PHP, pero no he usado ninguno en producción.Tiene algunos enlaces:

  1. http://www.stubbles.net/ que creo que es el más antiguo que probé
  2. http://php.xjconf.net/
  3. FLUJO3 - Creo que este se convertirá en un marco muy agradable (su beta ahora)

Mencionaste que lo usarías para TDD, así que quizás eche un vistazo a Inyección de dependencia para pruebas unitarias en PHP

Otros consejos

femto se está desarrollando nuevamente y parece bastante prometedor en mi humilde opinión.

Algunos otros proyectos similares que quizás quieras ver:

balde (Descargo de responsabilidad:Soy el autor principal de este)

El puerto php de picocontainer, existe desde hace mucho tiempo.No creo que ya se esté desarrollando activamente, pero, por otro lado, creo que es bastante estable.Aunque ha pasado mucho tiempo desde que lo miré.

Un proyecto bastante nuevo con el que me topé recientemente es Astuto.Aunque no estoy seguro de cuánta gente lo usa.

yo también estoy mirando esfici, que parece interesante.

Quizás también quieras probar Ding (http://marcelog.github.com/Ding), que sigue el modelo de Spring(tm) para Java.Es una inversión completa del contenedor de inyección de dependencia y control, que también admite AOP.

Qué pasa con la Inyección de dependencia de Symfony o el equivalente PHP 5.3+ componente del proyecto Symfony 2.0.

PHP-DI es otro contenedor de inyección de dependencia.

Presenta inyección de dependencia a través de anotaciones y configuración mínima, Aquí hay un ejemplo:

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

Es muy fácil de usar y se integra con Zend Framework, por ejemplo.

(Sí, trabajo en este marco)

He estado trabajando en un Contenedor PHP IoC/DI denominado Sustrato durante los últimos seis meses.Todavía es un trabajo en progreso, pero ha sido desplegado en producción Durante un mes y medio y ha estado funcionando bastante bien hasta ahora.

Substrate está inspirado en Spring Framework, pero escrito teniendo en cuenta las fortalezas y limitaciones de PHP.La documentación es bastante mínima en este momento, pero hay algo Código de muestra, incluido un ejemplo de prueba unitaria.¿Es esto algo que cree que podría utilizar para TDD?

Laravel 4 tiene el mejor marco IoC y DI.Si no te importa usar un framework, Laravel 4 es el camino a seguir.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top