Como crear un servicio en Drupal 8 (parte 1)

Lo primero, para tenerlo organizado, vamos a crear una carpeta llamada “services” dentro de la carpeta src del modulo. Y en esa carpeta una clase llamada “DrupalerosRepeater”, nos quedaría una estructura como la siguiente:

Ahora, dentro del archivo “DrupalerosRepeater” definimos la clase, el namespace y el método que necesitamos.

<?php

namespace Drupal\drupaleros\services;

class DrupalerosRepeater {

  public function getSay($count) {

    return str_repeat('Drupaleros ', $count);

  }

}

Cuando tengamos esta clase creada, vamos al método say del controlador “DrupalerosController” y lo modificamos añadiendo la instancia y la llamada al método “getSay” y pasandole el parámetro $count que recibe el método “say”.

<?php

namespace Drupal\drupaleros\Controller;

use Drupal\drupaleros\services\DrupalerosRepeater;
use Symfony\Component\HttpFoundation\Response;

class DrupalerosController {

  public function say($count)  {

    $repeater = new DrupalerosRepeater();
    $response_text = $repeater->getSay($count);

    return new Response($response_text); 
  }

}

Con esto ya tenemos una clase creada, si hemos partido de la base de del anterior articulo, si ahora entramos a “/drupal/say/10”, veremos como la palabra drupaleros se repite 10 veces.

En la próxima parte veremos como definir el servicio para que Drupal lo identifique como tal y desde cualquier lado podamos solicitarlo en lugar de tener que estar instanciando la clase cada vez que la necesitamos.

Ir a Parte 2

Páginas

Total de votos: 173

Entradas relacionadas

Comentarios (2)

  • Imagen de Jose Leonardo

    Jose Leonardo (no verificado)

    Hola buenas tarde Drupal tiene varios tipos de servicios?

  • Imagen de borja

    borja

    Te refieres a privados y publicos como Symfony? Si que existen, pero los privados no se puede usar directamente.

  • Páginas

Deja un comentario