Blog

Gérer la configuration dans Drupal 8

Drupal 8 va arriver avec une toute nouvelle façon de gérer la configuration au sens large : les modules, les champs et même des informations comme le nom du site. Toutes ses informations, autrefois stockées en base de données dans drupal 7, seront désormais stockées dans fichier YAML (.yml) qui ne seront rien d’autre que de simples fichiers textes.

Un module incontournable fait donc son apparition dans la version 8 du CMS ; le module “Configuration Manager”. Celui-ci fournira une interface utilisateur qui permettra de réaliser notamment de l’import/export de configuration d’un environnement à un autre, en tenant compte du fait que ce soit les mêmes sites sur ces environnements. Pour assurer cette cohérence, un identifiant unique est assigné au site, le “Universally Unique Identifier” (UUID). Il permet de vérifier lors de l’import de fichiers de configuration que nous sommes bien sur le même site que celui dont on a fait l’export de la configuration. Cet identifiant unique se trouve dans le fichier system.site.yml.
Lors d’un import, drupal vérifiera que les identifiants correspondent bien, et sont donc les mêmes, afin d’autoriser cet import.

On s’aperçoit donc que les modules comme “Features” ou “Strongarm” deviennent alors inutiles puisque ce nouveau système de configuration permet de remplir les fonctionnalités de ces derniers.

Les fichiers de configurations actuellement actifs peuvent être trouvés dans le répertoire “sites/default/files/config_XXXX/active” où “XXXX“ représente un hash comme par exemple “OBS62oxf-5DyUHkiVE7yuiok_OLuIaHY9qcfTpOlkJU” ce qui nous donnerait donc un répertoire ressemblant à : “sites/default/files/config_OBS62oxf-5DyUHkiVE7yuiok_OLuIaHY9qcfTpOlkJU/active”

On remarquera qu’un répertoire “staging” se trouve au même niveau que celui “active”. Celui-ci sert uniquement lors de l’import de fichiers de configuration, et reste vide le reste du temps.

Les fichiers de configuration Drupal sont cachés grâce au hash présent dans le nom du répertoire. De plus, un fichier .htaccess avec la directive “Deny from all” permet d’assurer une sécurité supplémentaire en rendant ces fichiers inaccessibles.

Toutes les opérations d’import ou d’export se font en back office en se rendant dans Manage > Configuration > Development > Configuration management soit à l’adresse suivante “admin/config/development/configuration” .

Il est alors possible d’exporter un seul fichier, ou de faire un export complet de tous les fichiers de configuration.

Si l’on part du principe que nous avons deux sites (dev et prod) identiques, tout changement fait sur le site de dev sera stocké dans le répertoire “active”. Il suffit alors d’importer ces fichiers sur le site de prod et de faire une synchronisation pour prendre en compte les changements. Une page de vérification des changements apparaît alors, permettant de s’assurer que les modifications apportées à la configuration du site soit cohérentes.

Une fois validée, les fichiers se trouvant dans le répertoire “staging” sont élevés dans le répertoire “active”, les nouveaux modules sont alors activés, les nouveaux champs, les types de contenu, etc.. sont ajoutés. Les changements sont alors effectifs sur l’environnement de prod.

 

Un besoin sur Drupal ? Contactez Akabia, l'agence Drupal au Nord de Paris !

Ces articles peuvent également vous intéresser :

Ajouter un commentaire