Inyección de dependencias en Symfony 2

Fabien Potencier, creador de Symfony, ha publicado una serie de seis artículos breves explicando la inyección de dependencias y su comportamiento en el futuro Symfony 2.0. Si pensabas que la "inyección de dependencias" era algo complicado, aburrido, lento y que iba contra la magia y la sencillez de Symfony 1.x, es probable que cambies de opinión después de leer los artículos:

  • ¿Qué es la inyección de dependencias? El artículo lo explica de forma sencilla y con ejemplos útiles que demuestran sus ventajas. En una sola frase: "la inyección de dependencias consiste en pasar a cada componente todo lo que necesita a través de sus constructores, métodos o campos".
  • ¿Necesitas un contenedor de inyección de dependencias? El contenedor es imprescindible cuando tienes muchos objetos con muchas dependencias. Para demostrar que el contenedor es independiente de Symfony, Fabien muestra en este tutorial ejemplos de Zend Framework. Así de paso se demuestra que no hay una guerra entre frameworks de PHP.
  • Introducción al contenedor de servicios de Symfony. Se introduce la clase sfServiceContainer y se muestra cómo utilizar el contenedor de Symfony 2.0 para simplificar y mejorar los ejemplos de los artículos anteriores.
  • El constructor de servicios de Symfony. Este artículo introduce la clase sfServiceContainerBuilder, que permite definir servicios utilizando solamente código PHP.
  • Cómo describir servicios con XML o YAML. Además de código PHP, los servicios se pueden crear mediante XML y YAML. Este artículo lo explica mediante las clases de tipo dumper y también explica por qué es mejor utilizar XML, aunque los archivos sean más aburridos de escribir.
  • El contenedor de servicios será rapidísimo. Si después de leer los artículos anteriores crees que Symfony 2.0 será muy lento por la cantidad de archivos XML/YAML que hay que leer para cada petición, no te pierdas el último artículo en el que se explica cómo generar código PHP eficiente a partir de los archivos XML/YAML.

Después de leer los artículos, es probable que te quede la sensación de que la "inyección de dependencias" es uno de los patrones de diseño más sobrevalorados, ya que, al menos en Symfony 2.x, es mucho más sencillo y más simple de lo que parecía.

Comentarios

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Publicada el

2 de abril de 2009

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.