Direkt zum Inhalt
Main Image
Bild
Surrounded by skyscrapers reaching into the sky
10. September 2025

Embrace ECA: Die Zukunft jenseits der klassischen Modulentwicklung

by Richard Papp

Wenn du schon eine Weile Drupal-Websites baust, kennst du das Muster: Eine neue Anforderung kommt herein, du greifst zu einem benutzerdefinierten Modul oder entstaubst ein veraltetes Modul, das du beigesteuert hast, und schon bald ist deine Codebasis ein Flickenteppich aus eng fokussierten Lösungen. Mit der Zeit wird die Wartung zu einer lästigen Pflicht.

Es gibt einen besseren Weg.

Mit Drupal 8 wurde das Plugin-System eingeführt - ein großer Schritt in Richtung Modularität. Plötzlich konnten wir kleine, fokussierte Klassen schreiben, um Funktionen auf saubere, wiederverwendbare Weise hinzuzufügen:

Drupal plugins

Aber Plugins sind immer noch Code. Sie müssen immer noch in Modulen implementiert, bereitgestellt und gewartet werden.

Das Event-Condition-Action (ECA)-Modul hat die Art und Weise verändert, wie wir über die Entwicklung von Drupal denken. Anstatt maßgeschneiderte Module zu entwickeln oder nach Plugins zu suchen, die für jeden Sonderfall geeignet sind, kannst du mit ECA die Logik deiner Website aus wiederverwendbaren Bausteinen - Ereignissen, Bedingungen und Aktionen - direkt in der Benutzeroberfläche (UI) zusammenstellen. Du brauchst ein fehlendes Teil? Implementiere es einfach in Code und füge es in das ECA-Framework ein. Der Rest ist Konfiguration, nicht Entwicklung.

Von Plugins zu Szenarien: Ein Wechsel in der realen Welt

ECA macht den nächsten Schritt. Mit ECA werden deine Plugins zu Szenarien - konfigurierbare, ereignisgesteuerte Workflows. Programmiere nur die fehlenden Bausteine und baue alles andere visuell zusammen:

ECA model with chained plugins

Die Migrate-API unterstützt seit langem die Verkettung von Prozess-Plugins, aber das war bisher auf Migrationen beschränkt. Seit der Veröffentlichung von ECA's modeler_api haben wir jetzt eine visuelle Benutzeroberfläche für die Verkettung beliebiger Logik, und zwar standortweit.

Migrationsprozess trimmen

Das Modul migrate_process_trim bietet eine schnelle und einfache Möglichkeit, führende oder nachgestellte Zeichen (z. B. Leerzeichen) in einer Drupal-Migration zu entfernen. Es funktionierte für Drupal 8 und 9, hatte automatische Korrekturen für Drupal 10 und 11, wird aber nicht mehr unterstützt.

Eine der Anwendungen unseres Kunden verließ sich beim Datenimport stark darauf. Für das Upgrade auf Drupal 11 hätten wir die Wartung übernehmen können, aber stattdessen wählten wir einen anderen Weg: Wir ersetzten es vollständig durch ein ECA-gestütztes Migrationsprozess-Plugin.

Hier ist der Grund dafür:

  • Die gleiche Trimmfunktionalität gab es bereits in Tamper und war in ECA über ECA Tamper verfügbar.
  • Durch die Verwendung von ECA konnten wir die Trimmlogik viel flexibler gestalten.

Anstelle eines eigenständigen Prozess-Plugins haben wir ein Migrationsprozess-Plugin erstellt, das ein ECA-Ereignis auslöst. Das Szenario übernimmt das Trimmen - egal, ob es sich um eine einfache Leerzeichenentfernung oder eine komplexe Stringmanipulation handelt - ohne den Migrationscode zu berühren.

Ergebnis: Ein nicht unterstütztes Modul wurde durch ein wiederverwendbares ECA-Szenario ersetzt, das über mehrere Migrationen hinweg funktioniert.

Process migration row values

Ersetzen von migrate_conditions durch ECA-Bedingungen

Manchmal willst du einen Wert nur umwandeln, wenn bestimmte Bedingungen erfüllt sind. In der Vergangenheit war das mit migrate_conditions möglich. Aber mit ECA kannst du die gleichen Bedingungen und mehr direkt in deinem Szenario implementieren.

Dein Migrationsprozess-Plugin löst ein Ereignis aus, ECA wertet die Bedingungen aus, und nur wenn sie erfüllt sind, wird die Umwandlungsaktion ausgeführt. So bleibt die Migrations-YAML sauber und du kannst die bedingten Regeln an einem zentralen, wiederverwendbaren Ort verwalten.

Durch diesen Tausch konnten wir ein weiteres Modul aus dem Stack des Kunden in den Ruhestand versetzen - und als Bonus müssen wir uns nicht mehr darum kümmern, ob es auf zukünftige Drupal-Versionen portiert werden kann. Da Jurgenhaas auf der Drupal-Konferenz in Portland 2024 versprochen hat, ECA "ein Leben lang" zu pflegen, sind wir in sicheren Händen.

Dieselbe Logik auf entity_import übertragen

Eine der größten Stärken von ECA ist die Wiederverwendbarkeit in verschiedenen Kontexten.

Entity Import bietet eine Benutzeroberfläche zum Importieren verschiedener Entitäten, die auf der Migrate API aufbaut. Aber:

  • Um Migrate-Prozess-Plugins wiederzuverwenden, musst du sie in konfigurierbare Plugins verpacken.
  • Aufgrund der begrenzten Plugin-Auswahl kannst du das gleiche Prozess-Plugin nur einmal pro Migrationsobjekt verwenden. Für die meisten Importe ist das in Ordnung, aber nicht immer.

Mit dem ECA Entity Import Prozess-Plugin entfallen diese Einschränkungen. Du kannst die gleichen Trimm- oder bedingten Logikszenarien aus deinen Migrationen in Entity-Importen wiederverwenden - ohne zusätzliche Wrapper, ohne doppelten Code.

Warum das wichtig ist

Der Building-Block-Ansatz von ECA zahlt sich in mehrfacher Hinsicht aus:

  • Schnelles Prototyping - Erstelle Funktionen in wenigen Minuten, teste sie sofort und führe Iterationen durch, ohne den Code neu zu implementieren.
  • Wiederverwendbarkeit - Eine einzige Transformation oder Bedingung kann mehrere Funktionen auf deiner Website unterstützen.
  • Zusammenarbeit - Websiteersteller und Stakeholder können Szenarien anpassen, ohne den Code zu berühren.
  • Wartungsfreundlichkeit - Aktualisierungen sind einfacher und sicherer - ändere das ECA-Szenario, anstatt Module neu zu schreiben.

Eine neue Standardeinstellung

Die Schlussfolgerung ist einfach: Hör auf, standardmäßig "ein neues Modul zu schreiben". Fang an, in Ereignissen, Bedingungen und Aktionen zu denken.

Code wird zum letzten Ausweg, der nur dazu dient, die wirklich fehlenden Teile zu ergänzen. Alles andere? Konfigurierbar in der Benutzeroberfläche, testbar ohne erneute Implementierung und wiederverwendbar auf deiner gesamten Website.

Wenn du es leid bist, eine Bibliothek von Einzweckmodulen zu pflegen, und einen saubereren, schnelleren Entwicklungsprozess willst, ist ECA nicht einfach nur ein weiteres Modul - es ist die nächste Stufe der Drupal-Site-Logik.

Tags

Tools

Neuen Kommentar hinzufügen

Klartext

  • Keine HTML-Tags erlaubt.
  • Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • Website- und E-Mail-Adressen werden automatisch in Links umgewandelt.
CAPTCHA
Diese Sicherheitsfrage überprüft, ob Sie ein menschlicher Besucher sind und verhindert automatisches Spamming.