tutorial pimple injection dependency container php frameworks

pimple - php-di tutorial



Inversión de Control Container para PHP (7)

Intento codificar el estilo TDD en PHP y uno de mis principales obstáculos (además de la falta de un IDE decente) es que tengo que crear mi propio contenedor IoC pirateado para inyectar todos mis objetos falsos correctamente.

¿Alguien ha usado un contenedor Ioc en php? Todo lo que he podido encontrar es PHP IOC en el cada vez más molesto phpclasses.org y parece que casi no tiene documentación y no tiene muchos seguidores.



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

Substrate está inspirado en Spring Framework, pero escrito con las fortalezas y limitaciones de PHP en mente. La documentación es bastante mínima en este momento, pero hay algún código de muestra , incluido un ejemplo de prueba de unidad. ¿Esto es algo que crees que podrías usar para TDD?


También es posible que desee probar Ding (http://marcelog.github.com/Ding) que se modela después de Spring (tm) para Java. Es una inversión completa de contenedor de inyección de control e dependencia, que también es compatible con AOP



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

Cuenta con 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í, sí trabajo en este marco)


Phemto se está desarrollando de nuevo, y parece bastante prometedor en mi humilde opinión.

Algunos otros proyectos similares, que es posible que desee ver:

cubo (Descargo de responsabilidad: soy el autor principal de este)

El puerto php de picocontainer ha existido por mucho tiempo. No creo que esté siendo desarrollado activamente, pero, por otro lado, creo que es bastante estable. Ha pasado mucho tiempo desde que lo miré.

Un proyecto bastante nuevo, con el que me encontré recientemente, es Crafty . Sin embargo, no estoy seguro de cuántas personas lo usan.

También estoy viendo sphicy , que se ve interesante.


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