Teilen Sie diesen Artikel:

Blog
Aug 08, 20237 min read

Tutorial zum Modul Config Ignore für Drupal

Ivaylo Tsandev

Entwickler

Tutorial zum Modul Config Ignore für Drupal

Im letzten Tutorial haben wir über das Modul Config Split für Drupal 8 gesprochen. Heute werde ich Ihnen ein weiteres konfigurationsbezogenes Modul für Drupal 8/9 zeigen - Config Ignore. Sie überschneiden sich teilweise miteinander. Beide helfen uns, Konfigurationen zwischen verschiedenen Umgebungen getrennt zu halten. Allerdings ist die Verwendung etwas anders. Das gilt auch für das Ergebnis. Am besten lernt und versteht man sie anhand von Beispielen aus der Praxis.

Nehmen wir an, wir müssen einige Entwicklungen im Zusammenhang mit der Funktionalität des E-Mail-Versands vornehmen. Wir möchten vielleicht eine Vorlage gestalten. Oder einen Ereignisabonnenten erstellen, der eine bestimmte E-Mail an den Website-Administrator senden soll. Oder eine Benachrichtigung bei einer Cron-Ausführung erstellen. Oder wir wollen einfach nur sicherstellen, dass wir überhaupt E-Mails versenden können!

Verwenden wir für dieses Beispiel die Standard-E-Mail-Adresse der Website. In der lokalen Umgebung würden wir also höchstwahrscheinlich unsere eigene E-Mail verwenden, oder? Aber wenn wir die Konfigurationen für die Test- oder Live-Umgebung exportieren, wollen wir nicht, dass unsere E-Mail als Standard-E-Mail eingestellt wird, sondern dass dies die echte E-Mail ist. Also müssen wir diese Konfiguration ignorieren. Können wir das tun?

Natürlich können wir das! Schon neugierig? Dann fangen wir an!

Zunächst müssen wir das Modul Config Ignore installieren und aktivieren:

composer require drupal/config_ignore 
drush en config_ignore 

Wir sollten auch den Cache löschen

drush cache:rebuild

und wir hätten das Modul bereits einsatzbereit. Es ist von einem anderen Modul - Config Filter - abhängig, aber das wird automatisch für uns erledigt. Wir müssen nur die Aktivierung beider Module genehmigen, falls erforderlich. Dieses Modul arbeitet näher am Konfigurationssystem des Kerns, so dass es auf den ersten Blick nicht so offensichtlich ist, wo es sich befindet. Wir haben keine neuen Einträge im Hauptbereich Konfiguration → Entwicklung. Schauen wir mal, was wir dort haben.

Konfiguration ignorieren Synchronisierung
Wie bereits erwähnt - nichts Besonderes. Nur das Standard-Konfigurationssynchronisationssystem, das vom Kern bereitgestellt wird und das wir normalerweise zum Importieren und Exportieren unserer Konfigurationen verwenden. Wenn wir diese Aktionen über die drush-Befehle [config:import] und [config:export] ausführen, lösen wir im Grunde die gleichen Aktionen aus, die wir hier sehen würden. Aber sehen wir uns mal an, was da drin ist.

Configuration ignore tab

OK, hier haben wir bereits eine weitere Registerkarte neben den Standardregisterkarten. Dies ist die Registerkarte "Ignorieren", auf der wir arbeiten müssen. Schauen wir uns an, wie sie aussieht.

Configuration ignore tab page

Es ist ziemlich einfach. Nur ein Formular, in das wir unsere Konfigurationen eintragen können, die wir ignorieren wollen. Die Leute, die es erstellt haben, beschreiben sogar, wie man es benutzt. Danke, Leute! Ich werde die Beispiele, die es dort gibt, nicht duplizieren, sondern mich stattdessen auf unseren speziellen Anwendungsfall konzentrieren. Wir müssen unsere E-Mail nur für die lokale Entwicklung verwenden. Die nächsten Dinge, die wir brauchen, sind:

  • wenn wir die Konfigurationen exportieren, sollte unsere E-Mail nicht mit exportiert werden
  • Wenn wir die Konfigurationen importieren, wollen wir nicht, dass die echte E-Mail aus der Test- oder Live-Umgebung für unsere Entwicklungszwecke verwendet wird, wir wollen also nicht, dass unsere Konfiguration überschrieben wird.

Config Ignore ist die Rettung! Es gibt nur wenige Möglichkeiten, die Konfigurationen zu beschreiben. Aber lassen Sie uns zunächst die Anfangskonfigurationen exportieren, damit wir später den Unterschied sehen können:

drush config:export

Hinweis: Bitte führen Sie den folgenden Schritt noch nicht aus. Ich mache ihn hier nur zur Erklärung.

Ich ging in die Konfiguration → System → Grundlegende Website-Einstellungen, änderte dort die E-Mail mit meiner eigenen und speicherte sie. Wenn wir nun zum Teil der Konfigurationssynchronisation zurückkehren (Konfiguration → Entwicklung → Konfigurationssynchronisation), sehen wir eine Änderung in der Datei system.site.yml und können sie durch Drücken von Unterschiede anzeigen überprüfen.

Config ignore view differences

Fügen wir nun die Konfigurationszeichenfolge aus dem unten stehenden Bild in die Registerkarte "Ignorieren" ein und klicken auf die Schaltfläche "Konfiguration speichern".

Config ignore settings

Aber wenn wir jetzt wieder exportieren, würden wir beide Änderungen sehen - die eine in system.site und die andere in config_ignore.settings. Und das wollen wir nicht. Wir brauchen nur die zweite Änderung. Der Grund, warum wir jetzt beide sehen, ist, dass das Konfigurationssystem noch nicht weiß, dass es die system.site ignorieren muss. Es wäre also besser, zuerst den Datensatz im Bereich Ignorieren hinzuzufügen, zu exportieren, dann die E-Mail zu ändern und zu speichern. OK, dann machen wir es dieses Mal richtig.

Wir besuchen die Registerkarte Ignorieren und fügen eines der folgenden Elemente hinzu:

- system.site → Beachten Sie, dass dadurch die gesamte Seite "Grundlegende Website-Einstellungen" ignoriert würde.

- system.site:mail → Damit würde nur der E-Mail-Teil der Einstellung ignoriert. Haben Sie den Doppelpunkt vor "mail" bemerkt? So legen wir fest, dass nur ein bestimmter Schlüssel aus einer Konfigurationsdatei ignoriert werden soll. Lassen Sie uns jetzt mit dieser Einstellung fortfahren. Diesmal sollten wir folgendes erhalten:

Config ignore settings

Wir sind bereit für den Export über:

drush config:export

Damit stellen wir sicher, dass die E-Mail bei der nächsten Änderung ignoriert wird. Dieses Mal sehen wir nur die Änderung in "config_ignore.settings". Das ist das, was wir erwarten. Ändern wir nun diese E-Mail. Danach wollen wir sehen, was die Registerkarte "Synchronisieren" anzeigt.

Config synchronization

Das System ist intelligent genug, um den Unterschied zu erkennen, aber es ignoriert ihn und lässt uns sogar wissen, dass er bereits ignoriert wurde. Jetzt sehen wir nur, dass es eine Änderung gibt, aber wir haben nicht die Schaltfläche, um sie zu sehen. Jetzt können wir den E-Mail-Wert nach Belieben ändern. Da wir nur die E-Mail ignoriert haben, wird jede andere Änderung in der system.site vom System als echte Änderung behandelt, d. h. sie wird nicht ignoriert, es sei denn, wir setzen die gesamte system.site in den Bereich "Ignorieren" oder einen anderen ihrer Schlüssel, so wie wir es mit der E-Mail getan haben. Jeder neue Eintrag sollte in eine neue Zeile gesetzt werden. So funktioniert das Modul Config Ignore.

Ich bin mir sicher, dass Sie dies bereits bemerkt haben, aber ich möchte es nur der Vollständigkeit halber erwähnen. Diese Konfiguration sollte nun in jeder Umgebung mit ihrem tatsächlichen Wert eingerichtet werden, was bedeutet, dass Sie die Mails in der Test-, Live- oder einer anderen Umgebung weiterhin aktualisieren müssen. Sie wird weder durch Import- noch durch Export-Aktionen ersetzt.

Das würde mit jeder Konfiguration funktionieren, auch wenn es eine benutzerdefinierte ist, die wir selbst definiert haben. Denken Sie nur daran, dass das Ignorieren einer neuen Konfiguration diese leer lassen würde, auch wenn sie einen Wert in der lokalen Umgebung hat. Der Export würde jedoch die yml-Datei erzeugen, so dass sie überall verfügbar wäre.

Dies ist eine kurze Anleitung für die Verwendung des Moduls Config Ignore. Wir möchten auch auf einige Unterschiede zwischen ihm und dem Modul Config Split hinweisen. Sie haben beide ihre Stärken. Wie entscheiden wir also, welches wir verwenden? Nun, das hängt von unserem Anwendungsfall ab, aber sehen wir uns ihre Spezifikationen an:

  • Config Ignore - einfacher zu benutzen, näher an der Kernfunktionalität. Das Hinzufügen einer weiteren Konfiguration zum Ignorieren ist so einfach wie das Eintragen in das Formular. Allerdings muss man in jeder Umgebung die gleiche Konfiguration verwenden. Wenn nur ein paar Datensätze hinzugefügt werden, ist dies jedoch kein wirkliches Problem.
  • Config Split - ist leistungsfähiger und bietet die Möglichkeit, alle möglichen Umgebungen im Voraus zu definieren. Es ermöglicht uns, die Konfigurationen, die wir für jede Umgebung wünschen, im Voraus zu definieren und sie nach dem Import zu vergessen. Es gibt auch die Möglichkeit, ein ganzes Modul zu konfigurieren, das pro Umgebung aktiviert oder deaktiviert wird, was sehr viel einfacher ist. Allerdings ist dies etwas schwieriger einzurichten und zu verwenden.

Letzten Endes ist es eine Frage der Vorliebe.

Ich hoffe, Sie finden diese Anleitung nützlich!

ABONNIEREN SIE UNSEREN NEWSLETTER

Teilen Sie diesen Artikel:

ABONNIEREN SIE UNSEREN NEWSLETTER

Verwandte Blog-Artikel

    Warum Startups zögern, mit einer Agentur für maßgeschneiderte Softwareentwicklung zusammenzuarbeiten - und wie wir alle Bedenken ausräumen

    Blog

    Warum Startups zögern, mit einer Agentur für maßgeschneiderte Softwareentwicklung zusammenzuarbeiten - und wie wir alle Bedenken ausräumen

    <p>Start-ups zögern oft, mit Softwareagenturen zusammenzuarbeiten, weil sie Bedenken hinsichtlich Kosten, Kontrolle und Flexibilität haben. Entdecken Sie, wie die maßgeschneiderten Softwarelösungen von Bulcode jede Herausforderung meistern und für Wachstum und Flexibilität sorgen.</p>

    Geschrieben von Svetoslava Angelova
    Nov 05, 20246 min read
    Aufbau eines hochleistungsfähigen agilen Teams: Unser bewährter Ansatz

    Blog

    Aufbau eines hochleistungsfähigen agilen Teams: Unser bewährter Ansatz

    Erfahren Sie, wie wir leistungsstarke agile Teams aufbauen, indem wir klare Rollen definieren, die Zusammenarbeit fördern und flexible Tools einsetzen.

    Geschrieben von Svetoslava Angelova
    Aug 27, 20249 min read
    Drupal 11: Was ist zu erwarten? Umfassender Leitfaden zu neuen Funktionen und Erweiterungen

    Blog

    Drupal 11: Was ist zu erwarten? Umfassender Leitfaden zu neuen Funktionen und Erweiterungen

    Drupal 11 ist da! Entdecken Sie in diesem Artikel die spannenden Funktionen und Verbesserungen. Führen Sie jetzt ein Upgrade durch, um Ihre digitale Strategie mit dem Experten-Support von Bulcode neu zu definieren.

    Geschrieben von Svetoslava Angelova
    Aug 05, 20247 min read
    Einzelne Verzeichniskomponenten in Drupal core: Ein umfassender Überblick

    Blog

    Einzelne Verzeichniskomponenten in Drupal core: Ein umfassender Überblick

    Erfahren Sie, wie Single Directory Components (SDC) in Drupal Core den Entwicklungsprozess rationalisieren, indem komponentenbezogene Dateien in einem einzigen Verzeichnis gekapselt werden. Erfahren Sie mehr über die Vorteile von SDCs und folgen Sie einer Schritt-für-Schritt-Anleitung, um sie in Ihren Drupal-Projekten zu implementieren.

    Geschrieben von Nikolay Tsekov
    Aug 07, 20244 min read
    SCRUM-EVENTS

    Blog

    SCRUM-EVENTS

    Scrum definiert mehrere Ereignisse (manchmal auch Zeremonien genannt), die in jedem Sprint stattfinden: Sprint Planning, Daily Scrum, Sprint Review und Sprint Retrospective.

    Geschrieben von Svetoslava Angelova
    Aug 07, 20233 min read
    Scrum-Artefakte

    Blog

    Scrum-Artefakte

    In der Softwareentwicklung bezieht sich der Begriff "Artefakt" auf Informationen, die Stakeholder und das Scrum-Team verwenden, um ein in der Entwicklung befindliches Produkt zu beschreiben.

    Geschrieben von Svetoslava Angelova
    Aug 07, 20232 min read
    Kopfloses Drupal mit Next.js - einfaches Beispiel für einen Durchgang

    Blog

    Kopfloses Drupal mit Next.js - einfaches Beispiel für einen Durchgang

    Der Trend in letzter Zeit, in der Web-Entwicklung im Allgemeinen, und folglich in der Drupal-Entwicklung ist die Verwendung der Technologie headless. Der Trend in letzter Zeit, in der Web-Entwicklung im Allgemeinen, und folglich in Drupal-Entwicklung ist die Technologie zu verwenden, headless.

    Geschrieben von Mihail Shahov
    Aug 07, 20237 min read
    Engagierte Softwareentwickler (Teams) anstellen

    Blog

    Engagierte Softwareentwickler (Teams) anstellen

    Sind Sie es leid, die Kosten für Ihr internes Entwicklungsteam zu erhöhen? Warum holen Sie sich nicht ein engagiertes Team zu 40 % bis 60 % der Kosten?

    Geschrieben von Mihail Shahov
    Aug 07, 20233 min read
    Die Bedeutung des richtigen Entwicklungspartners im Lebenszyklus Ihrer Softwareentwicklung

    Blog

    Die Bedeutung des richtigen Entwicklungspartners im Lebenszyklus Ihrer Softwareentwicklung

    Den Erfolg freischalten: Die Kunst der Auswahl des perfekten Softwareentwicklungspartners. Erforschen Sie die zentrale Rolle von Partnern in der Softwareentwicklung, decken Sie ROI-Geheimnisse auf und bleiben Sie den Branchentrends einen Schritt voraus in diesem lesenswerten Artikel.

    Geschrieben von Mihail Shahov
    Sep 26, 20239 min read
    Tutorial zum Modul Config Split für Drupal

    Blog

    Tutorial zum Modul Config Split für Drupal

    Sehr oft müssen wir als Entwickler mit verschiedenen Umgebungen arbeiten. Das kann manchmal zu (un)erwarteten Problemen führen. In Drupal 8 verwenden wir das Konfigurationssystem, das ziemlich gut funktioniert, aber es gibt Fälle, in denen die Einstellungen für die lokale und eine andere Umgebung unterschiedlich sein sollten.

    Geschrieben von Ivaylo Tsandev
    Aug 08, 20237 min read
    Enthüllung des Power-Duos: Next.js als Headless-Frontend von Drupal 10

    Blog

    Enthüllung des Power-Duos: Next.js als Headless-Frontend von Drupal 10

    Entdecken Sie die dynamische Synergie zwischen Drupal 10 und Next.js, da diese leistungsstarke Kombination die Landschaft der Webentwicklung neu gestaltet. Next.js, ein Open-Source-Framework auf React-Basis, ist nahtlos als Headless-Frontend in Drupal 10 integriert und bietet eine Fülle von Vorteilen. Von verbesserter Leistung mit Funktionen wie automatischer Codeaufteilung und serverseitigem Rendering bis hin zu flexiblem Design und SEO-freundlichen Funktionen ermöglicht diese Zusammenarbeit Entwicklern die Erstellung leistungsstarker, skalierbarer und visuell ansprechender Webanwendungen. Die effiziente Inhaltsverwaltung von Drupal 10 in Verbindung mit der Anpassungsfähigkeit von Next.js an Trends gewährleistet einen innovativen Entwicklungsansatz und positioniert dieses Tandem an der Spitze der modernen Webentwicklungspraktiken. Umarmen Sie die Zukunft mit der Kombination aus Drupal 10 und Next.js und definieren Sie neu, wie wir dynamische Online-Erlebnisse angehen und gestalten.

    Geschrieben von Todor Kolev
    Feb 09, 20245 min read
    Wie wir eine SSL-Gesamtbewertung von B auf A+ optimiert haben

    Blog

    Wie wir eine SSL-Gesamtbewertung von B auf A+ optimiert haben

    Die Optimierung der SSL-Implementierung ermöglicht es allen Kunden, die Website sicher und ohne Warnungen zu öffnen und zu durchsuchen.

    Geschrieben von Mihail Shahov
    Aug 07, 20232 min read

    KONTAKT AUFNEHMEN

    Sie haben ein Projekt, das Sie gerne starten würden?