Índice

El Service ContainerService Container

Hemos mencionado esta entidad durante el capítulo sobre la arquitectura del framework. Sabemos que el Service Container contiene “servicios”.

Su función es absorber la complejidad que acabamos de identificar: definir la manera de instanciar las clases pasivas, que solo contienen reglas y posibilidades de inyección. Esta definición es lo que llamamos un servicio.

Concretamente, el Service Container es una clase para la que cada uno de los métodos devuelve un servicio.

1. Los servicios

Un Servicioservicio es un objeto PHP listo para ser utilizado y cumpliendo una tarea genérica y única. Puede servir para “persistir” los datos en una base de datos, enviar correos electrónicos o escribir los logs.

Un servicio es accesible a través del Service Container y por defecto, el framework Symfony tiene un determinado número de servicios.

2. Explicaciones a través de un servicio X

Ahora vamos a la creación de un servicio X dado, basado en nuestra clase X (para la definición de la clase, ver la sección Ejemplo, al inicio de este capítulo).

Todos los servicios se definieron en el Service Container y son accesibles únicamente a través de este. La creación de este servicio se hace en la clase que representa el Service Container:

<?php  
  
class ServiceContainer  
{  
   private $services = array();  
  
   public function getX()   ...