Workshop · Desarrollo backend · Drupal 11

De cero a tu
primer módulo.

Introducción práctica al desarrollo de módulos personalizados en Drupal 11. Aprende la arquitectura, prepara tu entorno y empieza a construir con buenas prácticas.

{ module.info.yml }Drupal 11 ✓</ build something great >
01 / Aprende haciendo
02 / Arquitectura moderna
03 / Código reutilizable
04 / Open source
Lo que aprenderás

Todo empieza con un módulo.

Un recorrido desde la estructura de Drupal hasta la creación de funcionalidades propias.

⌘

Fundamentos

Arquitectura de Drupal 11, estándares de código y organización de proyectos.

01 / BASES
⚙

Tu módulo custom

Archivos YAML, rutas, controladores, permisos y estructura de directorios.

02 / DESARROLLO
◇

Servicios y DI

Contenedor de servicios, inyección de dependencias y código mantenible.

03 / ARQUITECTURA
▤

Form API

Construcción de formularios, validación y procesamiento de datos.

04 / INTERACCIÓN
{ }

Plugins y hooks

Extiende Drupal mediante sus APIs y puntos de integración.

05 / EXTENSIBILIDAD
✓

Calidad y debug

Drush, Xdebug, Coder, PHPStan y una introducción a los tests.

06 / HERRAMIENTAS
Prepara tu máquina

Un entorno listo para crear.

Propuesta de desarrollo local con DDEV, Composer y Drush. Necesitarás Docker y DDEV instalados.

Alternativa · sin instalar nada

¿Prefieres una máquina virtual lista para usar?

Descarga la OVA del taller con todo el entorno preparado e impórtala en VirtualBox. Solo necesitas VirtualBox y unos 10,8 GB para la descarga.

01 — INSTALA

Docker + DDEV

Prepara los requisitos de tu entorno local.

02 — CREA

Proyecto Drupal

Genera una instalación con Composer.

03 — ARRANCA

DDEV

Configura el proyecto y levanta los contenedores.

04 — CONSTRUYE

Tu primer módulo

Empieza a trabajar en web/modules/custom.

Paso 01 · Antes del taller

Instala Docker y DDEV

DDEV levanta PHP, la base de datos y el servidor web en contenedores, así que solo necesitas un proveedor de Docker y el propio DDEV; no hace falta instalar PHP, Composer ni MariaDB en tu máquina. Elige tu sistema operativo:

Linux Debian / Ubuntu · Docker CE
● ● ● terminal — Docker CE + DDEV
# 1. Docker CE (script oficial de Docker) y permisos para tu usuario
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER   # cierra sesión y vuelve a entrar

# 2. Repositorio APT de DDEV e instalación
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://packages.ddev.com/public/gpg.key \
  | sudo tee /etc/apt/keyrings/ddev.asc > /dev/null
sudo chmod a+r /etc/apt/keyrings/ddev.asc
printf "Types: deb\nURIs: https://packages.ddev.com/public/deb/ubuntu\nSuites: stable\nComponents: main\nSigned-By: /etc/apt/keyrings/ddev.asc\n" \
  | sudo tee /etc/apt/sources.list.d/ddev.sources > /dev/null
sudo apt-get update && sudo apt-get install -y ddev

# 3. Certificados HTTPS locales (solo una vez) y comprobación
mkcert -install
docker run --rm hello-world && ddev version

No uses sudo con docker ni con ddev: si lo necesitas, la instalación no ha terminado. Fedora, Arch y otras distribuciones tienen sus propios pasos en la guía oficial.

macOS OrbStack, Docker Desktop, Rancher Desktop o Colima
● ● ● terminal — Homebrew
# 1. Proveedor de Docker (OrbStack es el recomendado por DDEV)
brew install orbstack           # ábrelo desde Aplicaciones y elige "Docker"

# 2. DDEV y certificados HTTPS locales
brew install ddev/ddev/ddev
mkcert -install
ddev version

OrbStack no es gratuito para uso profesional. Alternativas libres: Rancher Desktop, Colima o Lima.

Windows WSL2 + Docker CE
● ● ● PowerShell
# 1. WSL2 y una distribución Ubuntu para DDEV (reinicia si te lo pide)
wsl --install --no-distribution
wsl --install Ubuntu-26.04 --name DDEV

# 2. DDEV: el instalador configura Docker CE dentro de WSL2
winget install DDEV --silent --override '/docker-ce /distro=DDEV'

Trabaja desde la terminal de la distribución DDEV en WSL2. También funciona con Docker Desktop o Rancher Desktop.

Guías oficiales: instalación de Docker ↗ · instalación de DDEV ↗. Prepara el entorno antes del taller: la primera vez se descargan varias imágenes de Docker.

Paso 02 · Con DDEV funcionando

Instala Drupal

Composer y Drush se ejecutan dentro de los contenedores con ddev composer y ddev drush. Elige cómo quieres empezar:

Proyecto del taller recomendado · configuración exportada
● ● ● terminal — proyecto del taller
# 1. Descarga el proyecto y levanta los contenedores
git clone https://gitlab.com/keopx/drupalea.git
cd drupalea
ddev start
ddev composer install

# 2. Instala Drupal desde la configuración exportada en config/sync
ddev drush site:install --existing-config --account-name=admin --account-pass=admin -y

# 3. Descarga y activa el módulo de ejemplo del taller
git clone https://gitlab.com/keopx/drupalea-backend-example.git web/modules/custom/drupalea_backend
ddev drush en drupalea_backend -y

# 4. Entra como administrador
ddev drush uli
ddev launch

Incluye Drupal 11, Drush, admin_toolbar, examples y las herramientas de calidad (PHPCS, PHPStan, PHPUnit). DDEV define config_sync_directory al ejecutar ddev start, así que no hace falta tocar settings.php. Si la instalación recupera una cuenta de administrador de la configuración, establece la contraseña con ddev drush user:password admin 'admin'.

Proyecto nuevo desde cero opcional · instalación limpia
● ● ● terminal — instalación limpia
# 1. Configura DDEV en una carpeta vacía
mkdir drupal11-workshop && cd drupal11-workshop
ddev config --project-type=drupal11 --docroot=web
ddev start

# 2. Descarga Drupal 11 y Drush con Composer (dentro del contenedor)
ddev composer create-project drupal/recommended-project:^11
ddev composer require drush/drush

# 3. Instala Drupal con el perfil standard
ddev drush site:install --account-name=admin --account-pass=admin -y

# 4. Descarga y activa el módulo de ejemplo del taller
git clone https://gitlab.com/keopx/drupalea-backend-example.git web/modules/custom/drupalea_backend
ddev drush en drupalea_backend -y
ddev launch

Un Drupal vacío, sin la configuración del taller, con solo el módulo de ejemplo drupalea_backend. Útil para practicar en tu propio proyecto.

Usuario: admin · Contraseña: admin, solo para desarrollo local. Guías oficiales: Drupal con DDEV ↗ · instalar Drupal ↗.

Alternativa · máquina virtual

Un entorno listo para importar.

¿Prefieres no instalar Docker ni DDEV en tu equipo? Descarga la máquina virtual del taller con todo el entorno preparado e impórtala en VirtualBox.

01 — INSTALA

VirtualBox

El único requisito en tu máquina.

02 — DESCARGA

La OVA del taller

Una imagen con el entorno ya preparado.

03 — IMPORTA

En VirtualBox

Descomprime, importa y arranca la máquina.

04 — CONSTRUYE

Tu primer módulo

Empieza a trabajar en web/modules/custom.

Paso 01 · Antes del taller

Instala VirtualBox

Descarga VirtualBox y sigue las instrucciones oficiales de Oracle para tu sistema operativo. Comprueba la compatibilidad de tu arquitectura (x86_64 o ARM) y que la virtualización esté activada en tu equipo.

Paso 02 · Con VirtualBox instalado

Descarga e importa la OVA

La imagen pesa unos 10,8 GB comprimida. Descárgala con tiempo y deja espacio libre suficiente para el fichero comprimido y la imagen descomprimida.

● ● ● terminal — importar la OVA
# 1. Descomprime la imagen (en Windows puedes usar 7-Zip)
gunzip Drupalea2026.ova.gz

# 2. Impórtala en VirtualBox
#    (o desde la interfaz: Archivo → Importar servicio virtualizado…)
VBoxManage import Drupalea2026.ova

# 3. Arranca la máquina virtual
VBoxManage startvm Drupalea2026

La máquina virtual (Ubuntu 64 bits) viene configurada con 4 CPU, 4 GB de RAM y un disco de hasta 25 GB: ajusta CPU y memoria al importarla si tu equipo va justo. Descarga la OVA antes del taller: la red del evento no es el mejor sitio para bajar 10,8 GB. Si ya trabajas con Docker y DDEV directamente, puedes omitir esta alternativa.

Sigue explorando

Recursos para llevarte.

Documentación oficial y materiales de referencia para continuar aprendiendo.

Documentación de Drupal 11Guías oficiales para desarrolladores
Abrir ↗
Crear módulos personalizadosTutorial y estructura básica de módulos
Abrir ↗
DDEVDocumentación del entorno local
Abrir ↗
Drupal APIReferencia técnica de las APIs
Abrir ↗
Presentación del taller 2023Material histórico de Drupal 10, como referencia (no actualizado a Drupal 11)
Abrir ↗
Web original · DrupalCamp 2023La página que inspira esta nueva edición
Visitar ↗

Los materiales específicos de la edición 2026 (presentación, repositorio o máquina virtual) podrán añadirse aquí cuando estén publicados.