Inyección de dependencias y PHP: la necesidad de un container

Fabien Potencier escribe una serie de artículos sobre la implementación de un container para hacer inyección de dependencias en PHP. A poco que se haya trabajado con inyección de dependencias en PHP, como por ejemplo en mi caso con el Zend Framework, uno se da cuenta de que las ventajas de éste patrón pueden ser muchas, pero construir una clase puede convertirse en un auténtico infierno.

Si éste artículo te interesa pero no tienes muy claro qué es la inyección de dependencias, qué ventajas tiene y qué es un container, ataca a éste artículo de Martin Fowler y a éste sobre Zend Framework.

El problema para mí con ésta solución está en dos cosas:

  • si utilizas un container de esa manera estás consiguiendo anular todas las ventajas de la inyección de dependencias: esto es, tus clases estarán ligadas al container, y el container a tu código, con lo cuál pierdes toda ventaja, y todo ello habiendo tenido que escribir una gran cantidad de código (menos que sin el container, eso es verdad).
  • esta solución puede ser necesaria sólo si se hace un uso MUY repetido de LA MISMA configuración, en caso contrario acabarías replicando código a mansalva.
  • el uso de XML para la configuración. Precisamente los DSL (Domain Specific Languages) internos (aquellos que utilizan el propio lenguaje para escribirse, en éste caso PHP) han demostrado ser mucho más eficaces que aquellos que utilizan XML´s externos (cualquier programador de Java podrá contar miles de experiencias codificando XML´s infinitos e infernales).

Dicho esto dejo aquí una idea más sencilla y que me ha gustado más: un simple constructor de clases sin XML.

Etiquetas:
,
Buscador hispano de Zend Framework:.

Comenta el articulo:

Requerido

Requerido,