Vamos a empezar a trabajar con Drupal 8 que es uno de los CMS más completos y en esta nueva versión está basado en Symfony el framework para PHP más completo.
Veamos como crear un módulo básico en Drupal 8. Esa creación de módulos para Drupal 8 la vamos a ver paso por paso.
Paso 1. Crear el directorio del módulo.
Crearemos el directorio para el módulo dentro de la carpeta modules de la raíz del proyecto y dentro de un directorio que se llame custom que vamos a crear. En mi caso mi módulo estará en modules/custom/pruebas_module
Paso 2. Crear el fichero nombre_del_modulo.info.yml
Vamos a crear el fichero de información del módulo, en mi caso, pruebas_module.info.yml en el que le vamos a indicar los datos básicos del módulo, el nombre, la versión, para que versión es el módulo, etc.
name: Pruebas Module description: Módulo de pruebas package: Víctor type: module core: 8.x
Paso 3. Crear el controlador
La arquitectura de un módulo de Drupal 8, al estar basado en Symfony, utiliza el patrón MVC para trabajar. Entonces tenemos que crear un controlador para crear nuevas páginas o para crear la funcionalidad del módulo. Dentro del directorio del módulo creamos un directorio src, dentro de este otro llamado Controller y dentro ya creamos el controlador. En mi caso quedaría así modules/custom/pruebas_module/src/controller/PruebasController.php
<?php namespace Drupal\pruebas_module\Controller; use Drupal\Core\Controller\ControllerBase; class PruebasController extends ControllerBase { /* Método acción content devuelve directamente un contenido en html, este método será usado en una ruta */ public function content() { return array( '#type' => 'markup', '#markup' => $this->t('Hola mundo !!'), ); } } ?>
Paso 4. Crear rutas
En la raíz del módulo creamos el fichero nombre_de_tu_modulo.routing.yml en mi caso pruebas_module.routing.yml, aqui vamos a definir las rutas de nuestras acciones o métodos del controlador, de forma muy similar a como lo hacemos en Symfony 3, le indicamos el nombre o clave de la ruta, el path o ruta que se va a cargar en la url en si, el controlador, el titulo de la página y los permisos u otras restricciones.
pruebas_module.content: path: '/admin/config/modulo-de-pruebas' defaults: _controller: '\Drupal\pruebas_module\Controller\PruebasController::content' _title: 'Modulo de pruebas' requirements: _permission: 'access content'
Paso 5(opcional). Poner link en un menú
En la raíz del módulo creamos el fichero pruebas_module.links.menu.yml en el cual le indicamos la clave del «enlace», el titulo y la descripción que va a tener el link, le ponemos la clave del menú donde lo vamos a poner y la ruta a la que va a llevar el enlace. Puedes ver el listado de claves de las zonas donde se pueden poner enlaces para acceder a las páginas y secciones de los nuevos módulos.
pruebas_module.homepage: title: Modulo de pruebas description: 'Configurar el modulo de pruebas' parent: system.admin_config_ui route_name: pruebas_module.content
Paso 6. Activar el módulo
Entramos en el panel de administración > Ampliar, marcamos el check en nuestro modulo y le damos a instalar.
Ahora ya podemos probar nuestro módulo, tenemos un link en la sección de configuración.
Y si entramos a la ruta en concreto que hemos definido o le damos click al link, nos muestra nuestro Hola Mundo en Drupal 8.
Pues esto es todo con esto ya sabemos crear un módulo básico en Drupal 8 y como has podido comprobar la forma de desarrollar módulos es muy limpia y es muy recomendable aprender Symfony3 (te recomiendo mi curso de desarrollo backend con Symfony 3) para poder entenderla y poder programar mejor con Drupal.