Las aplicaciones PHP modernas están llenas de objetos. Un objeto puede encargarse por ejemplo del envío de emails y otro te puede servir para guardar información en la base de datos. En tu aplicación, puedes crear un objeto que gestione tu inventario de productos, y otro objeto que procese los datos de una API de terceros. Lo importante es saber que una aplicación moderna que hace muchas cosas se organiza en objetos, cada uno de los cuales se encargan de una tarea.
Este capítulo trata sobre un objeto PHP especial de Symfony2 que te ayuda a crear instancias, organizar y recuperar los objetos de tu aplicación. Este objeto especial, llamado contenedor de servicios, te permite estandarizar y centralizar la forma en que se construyen los objetos en tu aplicación. El contenedor facilita mucho tu trabajo, es muy rápido, y te obliga a usar una arquitectura que pone el énfasis en la creación de código reutilizable y desacoplado. Como todas las clases internas de Symfony2 usan el contenedor, en este capítulo aprenderás cómo extender, configurar y utilizar cualquier objeto en Symfony2. En gran medida, el contenedor de servicios es el responsable de la velocidad de ejecución y extensibilidad de Symfony2.
Por último, configurar y usar el contenedor de servicios es bastante fácil. Al final de este capítulo, te sentirás cómodo creando tus propios objetos y personalizando los objetos de cualquier bundle desarrollado por terceros. Así crearás código reutilizable, más fácil de probar y desacoplado, ya que el contenedor de servicios facilita la escritura de buen código.
Truco Si quieres conocer un poco más sobre el contenedor de servicios, después de leer este capítulo revisa la documentación del componente de inyección de dependencias.