Almacenamiento de la configuración en Drupal 8
Por defecto, la información de configuración en Drupal 8 se almacena en la base de datos.
Formato del archivo de configuración (YAML)
Las extensiones (módulos, temas y perfiles) proporcionan datos de configuración en archivos YAML.
A continuación, un ejemplo de archivo de configuración:
some_string: '¡Woo gatitos!' some_int: 42 some_bool: true
La configuración también puede ser anidada. Aquí un ejemplo:
name: thumbnail label: 'Miniatura (100x100)' effects: 1cfec298-8620-4749-b100-ccb6c4500779: id: image_scale data: width: 100 height: 100 upscale: true weight: 0 uuid: 1cfec298-8620-4749-b100-ccb6c4500779
Esquema de configuración
La configuración tiene un esquema. Esto está descrito en la documentación del esquema de configuración/metadatos.
Configuración predeterminada para la extensión
La extensión (módulo, tema o perfil) que proporciona valores predeterminados para su configuración debe colocar esta configuración en archivos YAML dentro de su subdirectorio config/install
.
Si la extensión solo necesita parámetros básicos de configuración sencilla, todos los ajustes predeterminados pueden colocarse en un único archivo modulename.settings.yml
. Para configuraciones más complejas, puede dividir su configuración en varios archivos. Cada objeto de configuración debe estar en sus propios archivos YAML, y estos deben generarse automáticamente cuando el módulo escriba su configuración (no intente escribirlos manualmente).
Para proporcionar valores predeterminados a configuraciones que requieran valores dinámicos (que por tanto no puedan establecerse en modulename.settings.yml
), hágalo en hook_install()
. Por ejemplo:
/** * Implementa hook_install(). */ function modulename_install() { // Establece valores predeterminados para la configuración que requiere valores dinámicos. \Drupal::configFactory()->getEditable('modulename.settings') ->set('default_from_address', \Drupal::config('system.site')->get('mail')) ->save(); }
Configuración opcional para la extensión
Los elementos de configuración opcionales para una extensión (módulo o tema) se almacenan en el subdirectorio config/option
.
Estos son elementos de configuración que dependen de algo de lo que la propia extensión no depende explícitamente, por lo que se instalan solo si todas sus dependencias están satisfechas.
Por ejemplo, en un escenario donde el módulo A tiene configuración opcional que requiere el módulo B, pero primero se instala el módulo A y más tarde el módulo B, entonces el directorio config/option
del módulo A se escaneará en ese momento en busca de nuevas dependencias detectadas, y la configuración se instalará entonces. Si el módulo B nunca se instala, el elemento de configuración adicional tampoco se instalará.
Almacenamiento de configuración activa
Por defecto, Drupal 8 guarda la configuración activa en la base de datos para mejorar el rendimiento y la escalabilidad. Consulte «Configuración activa por defecto» para más información sobre el cambio del almacenamiento de archivos al almacenamiento en base de datos.
Actualizar la configuración desde YAML a la base de datos
Si durante el desarrollo necesita actualizar la configuración desde YAML a la base de datos, puede usar el comando drush config-import
(cim).
Edite el archivo de configuración YAML en la carpeta de configuración activa (como se define en el archivo settings.php
, por ejemplo, sites/default/files/config_6dh1U_2YKLGrrh5oLxAgobbledygook/sync
) y luego ejecute drush cim. Limpie las cachés (drush cr) para ver los cambios.
Si está satisfecho con las configuraciones en el archivo YAML, las copia a su módulo o tema.
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.