Digitalprojex logo

Recetas: El Nuevo Concepto de Drupal 10

Las recetas son un nuevo concepto en Drupal 10, diseñadas para reemplazar el enfoque anterior de distribución o perfil de instalación para sitios web.
recipes drrupal 10

Las recetas en Drupal son configuraciones predefinidas que permiten instalar y configurar sitios web de una manera rápida y sencilla. Al utilizar recetas en Drupal, los usuarios pueden ahorrar tiempo y esfuerzo en la configuración inicial de su sitio, ya que cuentan con una base sólida y optimizada para satisfacer sus necesidades. Hoy te invitamos a profundizar y conocer sobre esta nueva opción en Drupal.

Las recetas son un nuevo concepto en Drupal 10, diseñadas para reemplazar el enfoque anterior de distribución o perfil de instalación para sitios web. Su objetivo es desacoplar una instalación de su base para hacerlas más manejables y adaptadas a las necesidades específicas del sitio. Se añadieron al núcleo en Drupal 10.3 como experimentales. 

Se pueden encontrar las recetas del núcleo en /core/recipes. Las recetas personalizadas y contribuidas se guardan en /recipes.

Características Principales de las Recetas

Las principales características de las recetas son:

 Actúan como scripts: No dejan huella ni permanecen activas durante la vida del sitio, sin impacto en el rendimiento y siendo reversibles.

 Instalación de código: Pueden instalar módulos y temas gráficos a través de dependencias, pero no contienen archivos PHP.

 Modificación de configuración: Pueden realizar cambios en la configuración existente mediante acciones de configuración sin necesidad de programación.

Estructura de una Receta Drupal

En la carpeta que contiene una receta encontraremos al menos un archivo recipe.yml con esta estructura:

# Nombre visible de la receta, tal y como se listará.
name: 'Example recipe'
 
# Descripción opcional de la funcionalidad que aporta.
description: "An example Drupal recipe."
 
# El tipo es similar al paquete (package) en los módulos, agrupa recetas según criterio de utilidad.
# El tipo 'Content type' significa que la receta será listada como una opción en el instalador.
type: 'Content type'
 
recipes:
  # Si la receta depende de otras, se listarán aquí. Todas se aplicarán antes que ella misma.
  - editorial_ui_for_publishers
  - another_recipe
 
install:
  # Dependencias generales (módulos o temas gráficos) de la receta.
  - easy_breadcrumb
  - node
  - text
 
config:
  # La receta puede controlar qué entidades de configuración instalar o no de las provistas por los módulos listados en sus dependencias.
  # Estos ejemplos son ficticios.
  import:
easy_breadcrumb:
   - views.view.easy_breadcrumbs
node:
   - node.type.article
text: *
 
  # Acciones sobre configuración existente. Se declara el nombre de la configuración a tratar, la acción concreta a realizar (esto lo hace un plugin) y posibles argumentos.
  # En el ejemplo, el rol de usuario 'Editor' será creado si no existe y luego obtendrá varios permisos para trabajar sobre el tipo de contenido Artículo.
  actions:
user.role.editor:
      ensure_exists:
        label: 'Editor'
      grantPermissions:
     - 'delete any article content'
     - 'edit any article content'

Si una receta necesita instalar nueva configuración, se guarda en una carpeta llamada "config". Cada entrada de configuración se almacena en un archivo YAML (.yml) cuyo nombre coincide con el del elemento que define. Toda la configuración proporcionada por una receta se instala de manera incondicional, por lo que no hay sub carpetas como "config/install" o "config/optional".

Igualmente, las recetas incorporan una nueva API que facilita la modificación de la configuración existente mediante una sintaxis declarativa. Esta API es independiente de las recetas y puede ser utilizado por otros módulos para realizar cambios en la configuración sin requerir programación.

El equipo de desarrollo de recetas alienta su uso en entornos de desarrollo debido al bajo riesgo que supone el mismo. Dado que no se esperan cambios significativos en la estructura ya implementada, es poco probable que las recetas construidas ahora requieran revisión.

Para utilizar las recetas se proporcionan parches extensos para su aplicación en versiones mantenidas de Drupal 10, minimizando colisiones con otros parches. Además, se dispone de un conjunto de recetas de Drupal para la exploración y contribución.

Aplicación de Recetas

Las recetas se aplican usando el script PHP de Drupal del núcleo. CD en tu webroot y ejecuta:

php core/scripts/drupal recipe recipes/contrib/[recipe-name]

Aunque no hay una fecha específica para la versión estable de las recetas Drupal, un equipo está trabajando activamente para su implementación a medio plazo. Es probable que se integren en una actualización menor de Drupal 10 o, como máximo, con la llegada de Drupal 11. Esto implica ajustes en la infraestructura, incluyendo la creación de un nuevo tipo de extensión y su correspondiente buscador en drupal.org.

Las recetas están aún en desarrollo y presentan ciertas limitaciones. Actualmente, no cuentan con un sistema para gestionar actualizaciones una vez aplicadas, lo que dificulta establecer un ciclo de vida claro. Se sugiere aplicarlas una única vez y gestionar cualquier cambio posterior de otra manera.

Inicialmente conocidas como "starter templates" o plantillas de inicio, su propósito principal es proporcionar un punto de partida para nuevos proyectos. Se espera que reemplacen los perfiles de instalación de Drupal, como Standard o Umami, representando una evolución de estos. La mejor forma de aprovechar esta capacidad de Drupal dependerá de la experiencia de uso.

Esperamos que esta nueva propuesta de Drupal. Si desea profundizar en el conocimiento de esta poderosa plataforma de gestión de contenidos, le invitamos a ponerse en contacto con nuestro equipo de expertos en DigitalProjex. Nuestros profesionales estarán encantados de brindarle una consultoría personalizada y guiarle a través de los próximos pasos para integrar Drupal de manera exitosa en su ecosistema digital. No dude en programar una reunión para analizar cómo Drupal puede transformar y potenciar su presencia en línea.

Sobre DigitalProjex

DigitalProjex es una empresa dedicada al desarrollo e implementación de soluciones informáticas.

Saber más
Nuestro Equipo

Nuestro equipo está compuesto por profesionales especializados en Tecnologías de la Información.

Lo que ofrecemos

Desarrollo de soluciones útiles y eficientes que le permitan automatizar sus procesos y fomentar la innovación tecnológica en su empresa.

Algunos de nuestros clientes