Blog de Gonzalo

CREAR SERVICIOS EN SYMFONY 3

Después de aprender a crear bundles y entidades he aprendido a crear servicios en Symfony 3.
Un servicio en Symfony 3 son funcionalidades globales que vamos a usar en nuestro código como mandar un email, convertir fichero a PDF, etc..
.Los servicios permiten encapsular el código y separar funcionalidades.
Los servicios se crearán dentro del bundle en una carpeta que normalmente se llama "Services" aunque puede tener otro nombre. Después de crear dicha carpeta se crea una clase por cada servicio y luego hay que "dar de alta" ese servicio en el fichero "services.yml".
Ejemplo básico de un servicio:


namespace AppBundle\Services;

class MiServicio {

public function saludoDestinatario(string $nombre){
$hora = date('H');
$saludo = ($hora <= 12) ? 'buenos días' : 'buenas tardes';
return $saludo . ' '.$nombre;
}
}

Ahora hay que dar de alta al servicio: en el fichero "services.yml":

    mi_servicio:
class: PruebasBundle\Services\MiServicio
arguments: ["null"]

Ahora voy a poner como referenciar dicho servicio en el controler:

$MyService = $this->get("mi_servicio");
echo $MyService->saludoDestinatario('gonzalo');

Este ejemplo es bastante sencillito pero se complicar más añadiendo servicios dentro de otros servicios: $pdf = $this->container->get("mi_otro_servicio");. Este post ha sido breve pero espero que os haya servido.

Compartir en twitter