Desarrollo de Aplicaciones

¿Qué son los servicios de Symfony?

La programación orientada a objetos se basa en que hay unas clases que realizan determinadas funciones. Un servicio es un objeto de PHP que realiza una tarea global, accesible desde cualquier parte de la aplicación.

¿Qué son los servicios de Symfony?

¿Cómo funcionan los servicios de Symfony?

Los servicios funcionan de forma independiente al resto de la aplicación, a fin de cuentas, son clases independientes.

Ejemplo de un servicio de Symfony

Supongamos que queremos guardar una plantilla en una variable, parar ello debemos llamar al servicio “templating” que es el que se encarga de renderizar las plantillas.

El primer paso es llamar al servicio, para ello primero debemos llamar al contenedor de servicios desde el controlador y luego mediante la función “get” obtener el servicio que queramos:

$templating = $this->container->get(“templating”);

Ahora podemos interactuar con el servicio:

$html = $templating->render(“Default/index.html.twig”);

Crear un servicio propio

Siguiendo un ejemplo presente en la documentación de Symfony, lo primero es crear una simple clase que será el servicio, dentro de cualquier directorio de nuestro Bundle.

// src/AppBundle/Newsletter/NewsletterManager.php

namespace AppBundle\Newsletter;

use AppBundle\Mailer;

class NewsletterManager

{

    // ...

}

Luego en el fichero services.yml declaramos el servicio. Simplemente le hemos asignado un nombre “app.newsletter_manager” y le indicamos dónde está la clase a cargar:

# app/config/services.yml

services:

    app.newsletter_manager:

        class:     AppBundle\Newsletter\NewsletterManager

Para llamar al servicio desde el controlador:

$service = $this->container->get(“app.newsletter_manager”);

Luego podemos ejecutar cualquier función del servicio.

Comparte este artículo

Artículos Relacionados