Articles

Cómo hacer que tu instalación de Drupal 8 funcione (de nuevo).

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

Fundamentos
En Drupal 8, las URLs limpias están habilitadas por defecto y no se pueden desactivar. Sin embargo, el módulo de reescritura debe estar instalado en tu servidor web.
Revisa la barra de direcciones de tu navegador. Las URLs de tu sitio no deben contener ?q=
en la URL.
Ejemplo de URLs limpias correctas:
http://www.example.com/node/83
Ejemplo de URLs limpias que no funcionan:
http://www.example.com/?q=node/83

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

Esta guía contiene tutoriales y otra información necesaria para crear módulos para Drupal 8.
Otras fuentes:

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

Drupal 8 utiliza una serie de funciones avanzadas del lenguaje PHP y complejas librerías externas para proporcionar a los desarrolladores externos la API más avanzada de todos los CMS disponibles. Aunque los desarrolladores experimentados de Drupal 7 pueden notar algunos cambios significativos, la mayor parte de la estructura básica les resultará familiar.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

En las siguientes subsecciones de esta guía, crearemos ejemplos de diferentes partes de un sitio Drupal, como una página personalizada, bloque, entidad, campo, etc. Todos los ejemplos comienzan con la carpeta del módulo y el archivo .info.yml. Solo con estos dos elementos, el módulo aparecerá en la página de administración de extensiones de Drupal 8 o podrá ser activado directamente mediante Drush.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

Antes de empezar
Si quieres que PHP te ayude a detectar errores en el sitio de pruebas, prueba las configuraciones descritas aquí: Mostrar todos los errores durante el desarrollo.
Nombrar tu módulo
El primer paso para crear un módulo es elegir un "nombre corto" o nombre de máquina para él. Este nombre de máquina se usará en varios archivos y funciones de tu módulo, y el núcleo de Drupal lo utiliza programáticamente para referirse a tu módulo.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

Tema principal: metadatos del proyecto
El archivo .info.yml (también llamado “archivo info yaml”) es una parte fundamental de un módulo, tema o perfil de instalación en Drupal 8, ya que almacena los metadatos del proyecto.
Estos archivos .info.yml son necesarios para:

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

Al desarrollar módulos personalizados, existen varios escenarios que requieren que el desarrollador agregue un archivo composer.json a su módulo. Algunos de estos escenarios dependen de si el módulo personalizado está destinado a ser compartido con la comunidad como un proyecto en drupal.org.
Si el desarrollador del módulo quiere usar una biblioteca PHP alojada en packagist.org, debe agregar un archivo composer.json a su proyecto.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

En la siguiente sección analizaremos la creación de un módulo simple. Existe una tradición antigua en la que el primer programa que escribes en cualquier sistema nuevo muestra “Hello World!” en pantalla.
Aunque Drupal es uno de los proyectos de código abierto más audaces y progresivos, también está profundamente arraigado en las antiguas tradiciones de la ciencia y la ingeniería.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.

La función content() en la clase HelloController devolverá un texto con marcado cuando el sistema de enrutamiento invoque la página.
En la carpeta de su módulo debe tener la estructura estándar de carpetas PSR-4 /src/Controller, y dentro de esa carpeta debe tener un archivo controlador llamado HelloController.php.
Así, su archivo controlador tendrá esta ruta
/src/Controller/HelloController.php
El código que debe tener en el archivo HelloController.php es el siguiente:

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.