Julio 26, 2022
Raúl García
Una de las mejores herramientas para llevar a cabo una buena gestión de configuración es configuration split. En Drupal 8+ exportar e importar configuraciones de sitios a otros sitios es muy común, el problema viene cuando los desarrolladores tienen habilitadas funciones de desarrollo que no se quieren o no se deben llevar a producción.
Un ejemplo claro de esto sería tener el módulo devel habilitado en el ambiente de desarrollo pero no se requiere tenerlo también en producción, Configuration Split ayuda a crear un directorio separado donde se pueden importar estos módulos a un ambiente específico y no pasarlos a producción si no se requiere. Otro ejemplo sería suponiendo que tenemos un sitio sobre herramientas de desarrollo web, este sitio será un multisitio y será necesario que todos los demás sitios tengan la misma configuración básica, la diferencia radica en que algunos de estos sitios harán uso de tipos de contenidos que otros no usaran, por ejemplo Pages o FAQs. Hay que tomar en cuenta que este módulo no interfiere con la configuración de Drupal sino que filtra en import/export pipeline.
Usando este módulo se pueden definir los sets de configuración que se requieran exportar e importar evitando así tener módulos o información innecesaria. También resulta ser una herramienta muy práctica cuando se trabaja con multisitios.
Configuración
Instalación del módulo
-
Agregamos el módulo al proyecto:
$ composer require drupal/config_split
-
Habilitamos el módulo:
$ drush en config_split
Creación de la configuración split
- Ir a Admin > Configuration > Development > Configuration Split Settings.
- Dar Click en Add Configuration Split Setting.
- Agrega una etiqueta (Label).
- En la opción Folder Field, agrega el nombre de la carpeta.
- Guardar.
Agregar la configuración
Nota: a partir de ahora se le llamará “división” a los split.
Configuration Split proporciona 2 métodos para dividir la configuración: complete y conditional.
-
Complete split: este método se encarga de remover la configuración del directorio config/sync y lo pone solo en el directorio split previamente creado.
-
Conditional Split: este método mantiene la configuración del directorio config/sync, pero permite hacer una división más fina si esta es diferente a la que se encuentra en el directorio split.
- Navega a Admin > Configuration > Development > Configuration Split Settings y selecciona la división requerida para editarla.
- Dentro de la opción de Complete Split, selecciona los módulos e items que solo estarán disponibles cuando esta división esté activa.
- El proceso es el mismo para el Conditional Split.
- Guarda.
-
Activar y exportar split
Una vez que el split ha sido creado es necesario activarlo en el archivo settings.php
del sitio, agregando la siguiente línea de código:
$config['config_split.config_split."name_of_split"']['status'] = TRUE;
Donde name_of_split es el machine name de la división creada anteriormente.
Corremos drush cex
para exportar la configuración.
Si tenemos una división de desarrollo (development) esta debe de estar activada solo para el ambiente de desarrollo en el archivo local de settings.local.php
. de la siguiente manera:
$config['config_split.config_split.development']['status'] = TRUE;
Y en producción esté código no esta presente en el archivo settings.php
pero también se peude desabilitar agregando el siguiente código:
$config['config_split.config_split.development']['status'] = FALSE;
En el siguiente artículo llevaremos a cabo un ejemplo para profundizar más en el tema.