Partager cet article :

Blog
Aug 08, 20237 min read

Tutoriel du module Config ignore pour Drupal

Ivaylo Tsandev

Développeur

Tutoriel du module Config ignore pour Drupal

Dans le précédent tutoriel, nous avons parlé du module Config Split pour Drupal 8. Aujourd'hui, je vais vous présenter un autre module lié à la configuration pour Drupal 8/9 - Config Ignore. Ces deux modules se chevauchent partiellement. Les deux nous aident à garder les configurations séparées entre les différents environnements. Cependant, l'utilisation est légèrement différente. Il en va de même pour le résultat. La meilleure façon d'apprendre et de comprendre est d'utiliser des exemples concrets.

Supposons que nous ayons besoin de développer la fonctionnalité d'envoi de courrier électronique. Nous pouvons vouloir styliser un modèle. Ou créer un événement pour lequel nous voulons envoyer un message spécifique à l'administrateur du site. Ou créer une notification sur l'exécution d'un cron. Ou simplement s'assurer que nous pouvons envoyer des courriels !

Dans cet exemple, nous utiliserons l'adresse électronique par défaut du site. Dans l'environnement local, nous utiliserons probablement notre propre adresse électronique, n'est-ce pas ? Mais lorsque nous exportons les configurations pour l'environnement de test ou l'environnement réel, nous ne voulons pas que notre email soit défini comme l'email par défaut, mais plutôt que ce soit l'email réel. Nous devons donc ignorer cette configuration. Pouvons-nous faire cela ?

Bien sûr que si ! Vous êtes déjà curieux ? C'est parti !

Nous devons d'abord installer et activer le module Config Ignore :

composer require drupal/config_ignore 
drush en config_ignore 

Vidons également le cache

drush cache:rebuild

et le module serait déjà opérationnel. Il dépend d'un autre module - Config Filter, mais cela est géré automatiquement pour nous. Nous devons juste approuver l'activation des deux modules si nécessaire. Ce module travaille plus près du système de configuration du noyau, il n'est donc pas évident à première vue de savoir où il se situe. Nous n'avons pas de nouvelles entrées dans la zone principale Configuration → Développement. Voyons ce qu'il en est.

Configuration ignore synchronization
Comme mentionné précédemment, rien de spécial. Juste le système de synchronisation de configuration par défaut, fourni par le noyau que nous utilisons habituellement pour importer et exporter nos configurations. Lorsque nous exécutons ces actions via les commandes drush [config:import] et [config:export], nous déclenchons essentiellement les mêmes actions que celles que nous voyons ici. Mais voyons ce qu'il y a à l'intérieur.

Configuration ignore tab

OK, ici nous avons déjà un autre onglet à côté des onglets standards. Il s'agit de l'onglet "Ignorer" sur lequel nous devons travailler. Voyons à quoi il ressemble.

Configuration ignore tab page

C'est assez simple. Il s'agit simplement d'un formulaire dans lequel nous pouvons placer les configurations que nous voulons ignorer. Les personnes qui l'ont créé décrivent même comment l'utiliser. Merci les gars ! Je ne vais pas reproduire les exemples que nous avons là, mais plutôt me concentrer sur notre cas d'utilisation spécifique. Nous avons besoin que notre courrier électronique ne soit utilisé que pour le développement local. Les prochaines choses dont nous aurons besoin sont les suivantes :

  • lorsque nous exportons les configurations, notre email ne doit pas être exporté parmi elles
  • lorsque nous importons les configurations, nous ne voulons pas que l'email réel de l'environnement de test ou de l'environnement réel soit utilisé à des fins de développement, et nous ne voulons donc pas que notre configuration soit écrasée.

Config Ignore à la rescousse ! Nous avons plusieurs façons de décrire les configurations. Mais tout d'abord, exportons les configurations initiales afin de pouvoir voir la différence par la suite :

drush config:export

Note : Ne procédez pas encore à l'étape suivante. Je le fais ici uniquement pour des raisons d'explication.

Je suis allé dans Configuration → System → Basic site settings, j'ai changé l'email par le mien et j'ai sauvegardé. Maintenant, quand nous retournons à la partie synchronisation de la configuration (Configuration → Développement → Synchronisation de la configuration), nous voyons un changement dans le fichier system.site.yml et nous pouvons le vérifier en cliquant sur Voir les différences.

Config ignore view differences

Ajoutons maintenant la chaîne de configuration de l'image ci-dessous dans l'onglet "Ignorer" et appuyons sur le bouton "Enregistrer la configuration".

Config ignore settings

Mais maintenant, lorsque nous exporterons à nouveau, nous verrons les deux changements - l'un dans system.site et l'autre dans config_ignore.settings. Et ce n'est pas ce que nous voulons. Nous n'avons besoin que du second. La raison pour laquelle nous voyons les deux maintenant est que le système de configuration ne sait pas encore qu'il doit ignorer celui de system.site. Il serait donc préférable d'ajouter d'abord l'enregistrement dans la zone Ignorer, d'exporter, puis de modifier l'adresse électronique et de sauvegarder. OK, faisons les choses correctement cette fois-ci.

Nous visitons l'onglet Ignorer et ajoutons l'un des éléments suivants :

- system.site → Notez que cela ne tiendrait pas compte de l'ensemble de la page "Paramètres de base du site".

- system.site:mail → Ceci n'ignorerait que la partie email du paramètre. Vous avez remarqué les deux points avant mail ? C'est ainsi que l'on peut ignorer une clé spécifique d'un fichier de configuration. Utilisons-la maintenant. Cette fois, nous devrions avoir ce qui suit :

Config ignore settings

Nous sommes prêts à exporter via :

drush config:export

afin de s'assurer que l'email sera ignoré la prochaine fois que nous le modifierons. Cette fois-ci, nous ne voyons que le changement dans 'config_ignore.settings'. C'est ce à quoi nous nous attendions. Allons maintenant modifier cet email. Après cela, voyons ce que l'onglet "Synchroniser" nous montre.

Config synchronization

Le système est suffisamment intelligent pour voir la différence, mais il l'ignore et nous fait même savoir qu'elle a déjà été ignorée. Maintenant, nous voyons seulement qu'il y a un changement, mais nous n'avons pas le bouton pour le voir. Nous sommes maintenant prêts à modifier la valeur de l'e-mail autant que nous le souhaitons. Il est important de préciser que, puisque nous n'avons ignoré que le courrier, tout autre changement dans system.site serait traité comme un véritable changement par le système, c'est-à-dire qu'il ne serait pas ignoré à moins que nous ne placions l'ensemble de system.site dans la zone Ignorer ou dans l'une de ses clés, de la même manière que nous l'avons fait pour le courrier. Chaque nouvel enregistrement doit être placé sur une nouvelle ligne. C'est ainsi que fonctionne le module Config Ignore.

Je suis sûr que vous l'avez déjà remarqué, mais permettez-moi de le souligner uniquement pour des raisons d'exhaustivité. Cette configuration doit maintenant être mise en place avec sa valeur réelle dans chaque environnement différent, ce qui signifie que vous devrez toujours mettre à jour les messages dans l'environnement de test, l'environnement réel ou tout autre environnement. Elle ne sera pas remplacée par des actions d'importation ou d'exportation.

Cela fonctionnerait avec toutes les configurations, même s'il s'agit d'une configuration personnalisée que nous avons définie nous-mêmes. Il faut juste garder à l'esprit qu'ignorer une nouvelle configuration la laisserait vide, même si elle a une valeur dans l'environnement local. L'exporter cependant générerait le fichier yml afin qu'il soit disponible partout.

Il s'agit d'un bref tutoriel sur l'utilisation du module Config Ignore. Nous pouvons également souligner quelques différences entre ce module et le module Config Split. Ils ont tous deux leurs points forts. Alors, comment choisir lequel utiliser ? Cela dépend du cas d'utilisation que nous avons, mais voyons leurs spécifications :

  • Config Ignore - plus simple à utiliser, plus proche de la fonctionnalité de base. Ajouter une autre configuration pour l'ignorer est aussi simple que de la mettre dans le formulaire. Cependant, il faut veiller à ce que la configuration soit la même dans chaque environnement. S'il n'y a que quelques enregistrements ajoutés, ce n'est pas un vrai problème.
  • Config Split - plus puissant, il permet de définir à l'avance tous les environnements possibles. Cela nous permet de prédéfinir les configurations que nous voulons pour chaque environnement et de les oublier une fois qu'elles ont été importées. Il existe également une option permettant de configurer un module entier activé ou désactivé par environnement, ce qui est beaucoup plus facile. Cependant, cette option est légèrement plus difficile à mettre en place et à utiliser.

En fin de compte, c'est une question de préférence.

J'espère que ce tutoriel vous sera utile !

S'ABONNER À NOTRE NEWSLETTER

Partager cet article :

S'ABONNER À NOTRE NEWSLETTER

Articles de blog connexes

    Construire une équipe Agile performante : Notre approche éprouvée

    Blog

    Construire une équipe Agile performante : Notre approche éprouvée

    Découvrez comment nous construisons des équipes Agile performantes en définissant des rôles clairs, en favorisant la collaboration et en utilisant des outils flexibles.

    Écrit par Svetoslava Angelova
    Aug 27, 202411 min read
    Drupal 11 : à quoi s'attendre ? Guide complet des nouvelles fonctionnalités et des améliorations

    Blog

    Drupal 11 : à quoi s'attendre ? Guide complet des nouvelles fonctionnalités et des améliorations

    Drupal 11 est sorti ! Dans cet article, découvrez ses fonctionnalités et améliorations passionnantes. Mettez-le à jour dès maintenant pour redéfinir votre stratégie numérique avec l'aide des experts de Bulcode.

    Écrit par Svetoslava Angelova
    Aug 05, 20249 min read
    Composants d'annuaire unique dans Drupal core : Une vue d'ensemble

    Blog

    Composants d'annuaire unique dans Drupal core : Une vue d'ensemble

    Découvrez comment les composants à répertoire unique (SDC) de Drupal Core rationalisent le processus de développement en encapsulant les fichiers liés aux composants dans un répertoire unique. Découvrez les avantages des SDC et suivez un guide étape par étape pour les mettre en œuvre dans vos projets Drupal.

    Écrit par Nikolay Tsekov
    Aug 07, 20244 min read
    Tutoriel sur le module Config split pour Drupal

    Blog

    Tutoriel sur le module Config split pour Drupal

    En tant que développeurs, nous sommes souvent amenés à travailler dans des environnements différents. Cela peut parfois conduire à des problèmes (inattendus). Dans Drupal 8, nous utilisons le système de configuration qui fonctionne plutôt bien, mais il y a des cas où les paramètres pour l'environnement local et tout autre environnement devraient être différents.

    Écrit par Ivaylo Tsandev
    Aug 08, 20238 min read
    Dévoiler le duo de puissance : Next.js comme frontend Headless de Drupal 10

    Blog

    Dévoiler le duo de puissance : Next.js comme frontend Headless de Drupal 10

    Découvrez la synergie dynamique entre Drupal 10 et Next.js, alors que cette puissante combinaison redessine le paysage du développement web. Next.js, un framework open-source basé sur React, est intégré de manière transparente en tant que frontend headless de Drupal 10, offrant une pléthore d'avantages. De l'amélioration des performances grâce à des fonctionnalités telles que le fractionnement automatique du code et le rendu côté serveur à la conception flexible et aux capacités de référencement, cette collaboration permet aux développeurs de créer des applications web très performantes, évolutives et visuellement attrayantes. La gestion efficace du contenu de Drupal 10 associée à l'adaptabilité de Next.js aux tendances garantit une approche de développement de pointe, positionnant ce tandem à l'avant-garde des pratiques modernes de développement web. Embrassez l'avenir avec la combinaison Drupal 10 et Next.js, redéfinissant la façon dont nous abordons et créons des expériences en ligne dynamiques.

    Écrit par Todor Kolev
    Feb 09, 20246 min read
    Comment nous avons optimisé la note globale d'un SSL de B à A+.

    Blog

    Comment nous avons optimisé la note globale d'un SSL de B à A+.

    L'optimisation de la mise en œuvre du protocole SSL permet à tous les clients d'ouvrir et de parcourir le site en toute sécurité, sans avertissement.

    Écrit par Mihail Shahov
    Aug 07, 20233 min read
    Comprendre les versions de Drupal et planifier une stratégie de migration

    Blog

    Comprendre les versions de Drupal et planifier une stratégie de migration

    Reconnaître les différentes versions de Drupal et maintenir votre site web à jour.

    Écrit par Svetoslava Angelova
    Aug 08, 20235 min read
    Drupal 9 convertit les images au format WebP

    Blog

    Drupal 9 convertit les images au format WebP

    WebP est capable de porter la compression des données à un niveau supérieur grâce à l'inclusion d'un mode de prédiction dans le processus JPG, ce qui permet de voir clairement comment il peut surpasser son homologue basé sur JPG. Les résultats le prouvent.

    Écrit par Vasil Boychev
    Aug 08, 20238 min read
    Vue d'ensemble de React - Définition, SPA, Composants, Hooks

    Blog

    Vue d'ensemble de React - Définition, SPA, Composants, Hooks

    React est un framework JavaScript front-end gratuit et open-source permettant de créer des interfaces utilisateur basées sur des composants d'interface utilisateur. Il est également connu sous le nom de React.js ou ReactJS.

    Écrit par Mihail Shahov
    Aug 07, 20237 min read
    Qu'est-ce que la méthode Agile et pourquoi l'utiliser ?

    Blog

    Qu'est-ce que la méthode Agile et pourquoi l'utiliser ?

    La méthode Agile est une méthode de livraison de logiciels itérative et échelonnée dans le temps qui vise à fournir des logiciels progressivement tout au long du projet plutôt qu'en une seule fois vers la fin.

    Écrit par Svetoslava Angelova
    Aug 08, 20235 min read
    NVM vs NPM vs Yarn

    Blog

    NVM vs NPM vs Yarn

    Par rapport à ces trois technologies, le NVM diffère des deux autres. Node Version Manager (NVM) est utilisé pour gérer les versions de Node.js. NPM et Yarn sont des gestionnaires de paquets Node.js. Ils permettent de télécharger, d'installer et de gérer des paquets lors du développement en JavaScript.

    Écrit par Ventsislav Venkov
    Aug 07, 20235 min read
    Quel modèle d'engagement informatique vous convient le mieux ?

    Blog

    Quel modèle d'engagement informatique vous convient le mieux ?

    Prix fixe, temps et matériel, ou équipes dédiées ? Examinez attentivement les avantages et les inconvénients du modèle d'engagement pour votre projet.

    Écrit par Svetoslava Angelova
    Aug 07, 202311 min read

    PRENDRE CONTACT

    Vous avez un projet à lancer ?