Direkt zum Inhalt
Bild
Drupal Recipe Module Drupal Latest Initiative Recipes OpenSense Labs

Drupal-Rezeptmodul: Was ist das und wie funktioniert es?

AI-Translated

Drupal

Drupal 11 ist jetzt verfügbar und setzt neue Maßstäbe. Die neueste Version vereint Code und Design, um das Nutzererlebnis zu verbessern. Sie bietet Updates wie CKEditor Autoformat und ein verbessertes Block-Management, alles darauf ausgelegt, den Entwicklungsprozess zu optimieren. Zusätzlich gibt es auch Upgrades für das Drupal Recipe-Modul. 

Während Drupal sich weiterentwickelt, ist die Recipe-Funktion zu einem zentralen Bestandteil der Plattform geworden. Ein Recipe greift die Idee der „Kompossibilität“ auf und ermöglicht es Nutzern, eine Drupal-Website zu erstellen, die ihren individuellen Anforderungen entspricht oder zumindest einen soliden Ausgangspunkt bietet.

In diesem Blogbeitrag werden wir das Drupal Recipe-Modul von Drupal 11 und seine optimale Nutzung erläutern.   

Wenn Sie über einen Umstieg von Ihrem aktuellen Content-Management-System zu Drupal nachdenken, informieren Sie sich bitte über unsere Migrationsservices, bevor Sie fortfahren.

Zu Drupal migrieren

Legen wir los! 

Drupal Recipes Initiative: Was ist das?  

Die Einführung des Drupal-Icons in einer Bratpfanne symbolisiert eine neue Drupal-Initiative namens Drupal Recipes. Dieses Tool richtet sich an Site Builder und Entwickler und ermöglicht es ihnen, die Funktionalität einer Drupal-Website zu verbessern.  

Drupal Recipes ähneln einem Kochrezept. Drupal Recipes bieten eine Reihe vorgefertigter Konfigurationen und Komponenten, die das einfache Hinzufügen neuer Funktionen ermöglichen. Durch die Verwendung dieser Recipes können Entwickler Drupal-Sites schnell erstellen und verbessern, Best Practices einhalten und die Wiederverwendung von Code fördern.

Drupal Recipes können jederzeit im Lebenszyklus einer Drupal-Anwendung hinzugefügt, entfernt oder mit verschiedenen Funktionen kombiniert werden. Wenn Sie beispielsweise ein Recipe für einen bestimmten Website-Typ, wie einen Blog oder einen Online-Shop, haben, können Sie es als Basis für neue Projekte verwenden. Dieser Ansatz spart Zeit und gewährleistet Konsistenz über alle Ihre Websites hinweg.

Drupal Recipes bieten mehr Flexibilität im Vergleich zu Distributionen. Während Distributionen eine Sammlung von Drupal- und anderen Softwarekomponenten sind, die so eingerichtet sind, dass sie ohne große Änderungen gut zusammenarbeiten, ermöglichen Drupal Recipes das einfache Ersetzen oder Aktualisieren von Teilen Ihres Systems. Das bedeutet, Sie sind nicht an eine feste Konfiguration gebunden.

Bestandteile eines Recipes: 

  1. Profile: Dies sind vorgefertigte Setups für bestimmte Aufgaben, die als Basis eines Recipes dienen.  

  1. Features: Wesentliche Elemente, die Ihre Website erweitern, wie Kontaktformulare oder Online-Shopping-Optionen.  

  1. Konfigurationsschlüssel: Jedes Recipe verfügt über Konfigurationsschlüssel, die bei der Einrichtung helfen, darunter:  

  • Name: Der Titel des Recipes.  

  • Beschreibung: Eine Zusammenfassung der Funktion des Recipes.  

  • Typ: Klassifiziert das Recipe (z. B. Site, Content-Type, Feature). 

  • Installationsanweisungen: Richtlinien für die Organisation von Komponenten.  

  • Konfigurationsaktionen: Richtlinien zur Anpassung des Erscheinungsbilds und der Funktionen der Website.

    Drupal Recipe Modul Drupal Recipes Initiative OpenSense Labs

Lesen Sie auch: 

  1. Plug & Play mit neuen Drupal Recipes 
  2. Drupal 11: Elf Änderungen & Updates in Drupal 11 
  3. Drupal 7 End of Life: Die wichtigsten Gründe für die Migration zu Drupal 10 
  4. Was tun mit Ihrer Drupal 7 Website? 

Drupal Recipe-Modul: Wie wird es installiert? 

Drupal Recipes konzentrieren sich auf die Konfiguration und sind „deklarativ, nicht funktional“. Drupal Recipes können auch mit anderen Drupal Recipes verwendet werden. Beispielsweise kann ein Drupal Recipe, das eine bestimmte Aufgabe ausführt, mit einem anderen Drupal Recipe kombiniert werden, das etwas anderes tut.   

Drupal Recipes können Module mit Code hinzufügen, enthalten aber selbst keinen Code. Sie nutzen die Konfiguration, nicht den Code. Wenn Sie ein Drupal Recipe installieren, wird es Teil Ihrer Konfiguration. Es gibt auch nichts zu aktualisieren; daher ist ein Upgrade-Pfad unnötig.  

Ein Recipe hat einen Ordner, der einem Drupal-Modul ähnelt. Sehen wir uns das Ordnerlayout an. Es enthält eine recipe.yml-Datei und einen Konfigurationsordner für Ihre Konfigurationsdateien. Lassen Sie uns nun die Details der recipe.yml-Dateistruktur erkunden: 

  • Es beginnt mit der Definition des Namens des Recipes, in diesem Fall „Event“, und seines Typs, der als „Content-type“ bezeichnet wird.   

  • Dies zeigt auch an, ob das Recipe nach anderen Drupal Recipes sucht. Zum Beispiel sucht es nach dem „Event manager“-Recipe, das eine Benutzerrolle mit diesem Namen auf der Drupal-Site erstellt und sich im selben Ordner wie das „Event“-Recipe befindet.   

  • Das Recipe fügt dann alle notwendigen Module hinzu, die noch nicht auf der Website installiert sind. In diesem Fall installiert es die Module Datetime range und Node. 

  • Zuletzt gibt es Konfigurationsaktionen (Config Actions), diese Funktion ist leistungsstark, um eine bestehende Konfiguration zu ändern. In diesem Beispiel ändern die Konfigurationsaktionen die Konfiguration „user.role.event_manager“, indem sie Berechtigungen zum Bearbeiten und Löschen von Event-Inhalten hinzufügen.  

Sie können ein vollständiges „Event“-System erstellen, indem Sie mehrere kleinere Drupal Recipes zu einem größeren Recipe kombinieren.

 

Drupal Recipe Modul Recipe.yml Dateistruktur OpenSense Labs

Drupal für die Anwendung von Recipes konfigurieren

Dieser Blogbeitrag beschreibt die notwendigen Schritte zur Einrichtung einer Composer-basierten Drupal-Installation zur Vorbereitung auf die Anwendung von Drupal Recipes.

## Composer.json Konfiguration

### Composer Installers Extender

Sollte Ihrem Projekt das composer-installers-extender-Plugin fehlen, beachten Sie bitte die Anweisungen unter https://github.com/oomphinc/composer-installers-extender, um es zunächst zu installieren.

Dieses Paket definiert neue Installationstypen für Composer, die es ermöglichen, Pakete verschiedener Typen an unterschiedlichen Orten innerhalb Ihres Projektverzeichnisses zu installieren. Ohne diese Konfiguration werden Pakete standardmäßig im Vendor-Ordner des Projekts installiert.

Fügen Sie dazu `drupal-recipe` im Abschnitt `installer-types` des `extra`-Bereichs der composer.json-Datei des Repositorys hinzu.

"extra": {
    "installer-types": [
        "drupal-library",
        "npm-asset",
        "bower-asset",
        "quicksilver-script",
        "drupal-recipe"
    ],
}

Dies weist Composer an, einen neuen „Typ“ zu erwarten, der in der composer.json-Datei des Recipes als `drupal-recipe` angegeben ist.

Fügen Sie zusätzlich im `extra`-Bereich der composer.json-Datei des Repositorys Folgendes hinzu:

"web/recipes/contrib/{$name}": ["type:drupal-recipe"]
 "installer-paths": {
        "web/core": ["type:drupal-core"],
        "web/libraries/{$name}": [
            "type:drupal-library",
            "type:bower-asset",
            "type:npm-asset"
        ],
        "web/modules/contrib/{$name}": ["type:drupal-module"],
        "web/profiles/contrib/{$name}": ["type:drupal-profile"],
        "web/themes/contrib/{$name}": ["type:drupal-theme"],
        "drush/contrib/{$name}": ["type:drupal-drush"],
        "web/private/scripts/quicksilver/{$name}/": ["type:quicksilver-script"],
        "web/recipes/contrib/{$name}": ["type:drupal-recipe"]
    },

Dies weist Composer an, ein Paket vom Typ Drupal-Recipe im Ordner web/recipes/contrib/ zu installieren, sobald es gefunden wird.

Die recipe.yml Datei verstehen 

Eine recipe.yml-Datei enthält mindestens die Schlüssel name und description. Darüber hinaus kann sie drei Hauptabschnitte enthalten:

  • Pakete installieren (install Schlüssel) - Der install-Schlüssel gibt die Module und Themes an, die installiert werden sollen, wenn das Recipe angewendet wird. Sind sie noch nicht installiert, wird Drupal sie automatisch installieren. Beispiel:

  install:
  # Install primary module.
  - password_policy
  # Install submodules.
  - password_policy_characters
  - password_policy_history
  - password_policy_length

Drupal Recipes Modul Pakete installieren OpenSense Labs

  • Konfiguration verwalten (config Schlüssel) - Der config-Schlüssel ermöglicht es Ihnen, Konfigurationen auf zwei Arten zu importieren und zu ändern:
  1. Konfigurationen importieren:
  • Verwenden Sie "*", um alle Basis- und optionalen Konfigurationen eines Moduls zu importieren.

  • Geben Sie einzelne Konfigurationen an, die selektiv importiert werden sollen.

  • Beispiel:

config:
  import:
    password_policy:
      # Add Password Policy Settings
      - password_policy.settings
      # Add Password Policy fields.
      - field.field.user.user.field_last_password_reset
      - field.field.user.user.field_password_expiration
      - field.field.user.user.field_pending_expire_sent
      - field.storage.user.field_last_password_reset
      - field.storage.user.field_password_expiration
      - field.storage.user.field_pending_expire_sent
      # The 90-day policy is imported by default from this recipe's config folder.

 

2. Bestehende Konfigurationen aktualisieren (actions Schlüssel): Beim Aktualisieren importierter oder Ändern bestehender Konfigurationen wird der actions-Schlüssel verwendet. Beispiel:

config:
  actions:
    # Adds Two new fields to the user form. The third field is hidden by default.
    core.entity_form_display.user.user.default:
      setComponents:
        -
          name: field_last_password_reset
          options:
            type: datetime_default
            weight: 4
            region: content
            settings: {  }
            third_party_settings: {  }
        -
          name: field_password_expiration
          options:
            type: boolean_checkbox
            weight: 3
            region: content
            settings:
              display_label: true
            third_party_settings: {  }

3. Abhängigkeiten von anderen Recipes verwalten (recipes Schlüssel) - Wenn das aktuelle Recipe von anderen Recipes abhängt, können diese unter dem recipes-Schlüssel angegeben werden. Dies stellt sicher, dass sie angewendet werden, bevor das aktuelle Recipe ausgeführt wird. Beispiel:

recipes:
  - core/recipes/example

Dieser strukturierte Ansatz hilft, modulare, wiederverwendbare und verwaltbare Konfigurationen innerhalb von Drupal Recipes zu pflegen.

Drupal Recipe-Modul: Wie entpackt man Recipes?

Dieses Composer-Plugin erleichtert die Extraktion der Abhängigkeiten eines Pakets in die Composer- und Lock-Dateien im Projekt-Root, speziell für die Implementierung innerhalb von Drupal Recipes.

Um die ordnungsgemäße Funktion dieses Plugins zu gewährleisten, ist es unerlässlich, dass die Recipe-Funktionalität im Drupal-Core aktiviert und konfiguriert ist. Diese Funktionalität kann durch Anwendung des bereitgestellten Patches integriert werden. Weitere Details zur Anwendung des Patches und zur Aktualisierung finden Sie auf der Drupal Recipe Projektseite.

Installation 

Der Installationsprozess kann mit Composer durchgeführt werden, indem dieses Paket als Entwicklungsabhängigkeit hinzugefügt wird:

1. Fügen Sie die Git-Repositories wie unten beschrieben in die Liste der Projekt-Repositories ein:

{
    "type": "vcs",
    "url": "https://gitlab.ewdev.ca/yonas.legesse/drupal-recipe-unpack.git"
}

2. Führen Sie die Installation des Pakets zusammen mit dem Recipe aus:

composer require ewcomposer/unpack:dev-master

Bei Verwendung von Composer Version 2.2 oder höher wird das System Ihre Autorisierung anfordern, um diesem Plugin die Ausführung von Code zu gestatten. Damit das Plugin effektiv funktioniert, ist es unerlässlich, diese Berechtigung zu erteilen.

Sobald die Berechtigung erteilt wurde, fügt Composer automatisch den folgenden Code-Snippet in Ihre composer.json-Datei ein:

{
    "config": {
        "allow-plugins": {
            "ewcomposer/unpack": true,
        }
    }
}

Bevor Sie auf Composer 2.2 aktualisieren, falls Sie eine Version vor 2.2 verwenden, können Sie das Berechtigungs-Flag durch Ausführen des folgenden Befehls hinzufügen:

composer config allow-plugins.ewcomposer/unpack true

Befehl ausführen

Nachdem Sie ein Drupal Recipe auf Ihr Projekt angewendet haben, führen Sie den unten stehenden Befehl aus, um die im composer.json des Recipes angegebenen Abhängigkeiten in die Root-Composer- und Lock-Dateien des Projekts zu entpacken und zu aktualisieren.

# For a drupal recipe with name drupal_recipe/startup_recipe
composer unpack drupal_recipe/startup_recipe

Kompatibilität

Dieses Plugin ist kompatibel mit:

  • PHP 7.x und 8.x
  • Composer ˆ1.8 und 2.x

Roadmap

Die bestehende Funktionalität ermöglicht die automatische Extraktion der Abhängigkeiten eines Pakets in die Root-Composer-Datei des Projekts. Nachfolgend finden Sie eine umfassende Liste der geplanten Funktionen:

1. Ein `unpack`-Befehl, der alle Paket-Anforderungen in die composer.json-Datei des Projekts überträgt.

2. Eine Konfigurationsoption innerhalb von composer.json, die festlegt, welche Pakettypen automatisch entpackt werden sollen, d.h. beim Anfordern oder Aktualisieren entpackt werden. Zum Beispiel:

{
    "config": {
        "drupal-recipe": {
            "auto-unpack": true,
        }
    }
}

3. Eine in composer.json definierte Konfigurationseinstellung, die angibt, welche Pakete rekursiv entpackt werden sollen. Beispiel:

composer unpack --recursive drupal-recipe/RECIPE

4. Eine Konfigurationseinstellung, die festlegt, ob die Recipe-Anforderung nach dem Entpacken entfernt wird. Beispiel:

{
    "config": {
        "drupal-recipe": {
            "unpack-remove-recipe": true,
        }
    }
}

Drupal Recipe-Modul: Wie erstellt man ein Drupal Recipe? 

Um ein Recipe zu erstellen, befolgen Sie diese Schritte:  

  1. Repository starten: Erstellen Sie ein Repository, um Ihre Recipes einfach zu organisieren und zu verwalten. 

  1. Recipe-Format festlegen: Haben Sie zumindest eine recipe.yml-Datei.  

  • Listen Sie die Module, die Sie installieren möchten, unter dem `install`-Schlüssel auf.  

  • Sie können auch andere Recipes unter dem `recipes`-Schlüssel hinzufügen, um die Organisation zu verbessern.  

  1. Hier ist ein Beispiel für ein recipe.yml-Layout: 

 Drupal Recipe Modul Beispiel Recipe yml Struktur 1 OpenSense Labs

Beispiel eines Drupal Recipes zur Installation eines Moduls mit benutzerdefinierten Konfigurationen 
Code-Struktur 

Drupal Recipe Modul Beispiel Recipe.yml Struktur 2 OpenSense Labs

Hier gibt es insgesamt drei Dateien  
Recipe.yml 
Composer.json 
Advagg.settings.yml 
 

Drupal Recipe Modul Beispiel Recipe.yml Struktur 3 OpenSense Labs

Drupal Recipe Modul Beispiel Recipe.yml Struktur 4 OpenSense Labs

Drupal Recipe Modul Beispiel Recipe.yml Struktur 5 OpenSense Labs

Dies ist ein einfaches Beispiel für die Verwendung eines Recipes.  
Hier installieren wir ein Modul über composer.json und aktivieren es über den `install`-Befehl in recipe.yml. 

Für benutzerdefinierte Einstellungen speichern wir unsere personalisierten Konfigurationen im `config`-Ordner, die beim Einrichten unseres Recipes importiert werden. 

Drupal Recipe-Modul: Wie funktioniert es? 

Nehmen wir zur Veranschaulichung an, Sie möchten eine Event-Funktion erstellen. Hierfür verwenden Sie ein „Events Content-Type“-Recipe, um einen Event-Inhaltstyp mit den benötigten Attributen und Feldern einzurichten. Dies richtet auch Views, Metatags und Pfade für den Event-Inhalt ein. Dieser Ansatz bietet Ihnen einen soliden Ausgangspunkt, da 70-80 % der grundlegenden Einrichtung und Konfigurationen vom Recipe übernommen werden.  

Danach können Sie zusätzliche Einstellungen an Ihre Bedürfnisse anpassen. Sobald Sie das Recipe angewendet haben, benötigen Sie es nicht mehr und können es aus Ihrem Projekt entfernen, während alle Konfigurationen erhalten bleiben.

Bevor wir in diesem Blog fortfahren, stellen Sie mit unseren Expertenservices einen reibungslosen Übergang zu Drupal 10 sicher. Migrieren Sie zu Drupal 10, bevor es zu spät ist! 

Zu Drupal migrieren 

Drupal Recipe-Modul: Welche Vorteile bietet es Ihnen? 

Drupal Recipes bieten viele Vorteile, wie die Behebung von Problemen mit Distributionen durch höhere Modularität. Anstatt alles zu kombinieren, ermöglichen Drupal Recipes Ihnen, nur die Funktionen auszuwählen, die Sie benötigen, wodurch ein Übermaß an unnötigen Drupal-Modulen vermieden wird. 

Werfen wir einen Blick auf weitere Vorteile der Verwendung von Drupal Recipes:    

  1. Modularer Aufbau: Drupal Recipes ermöglichen das Hinzufügen spezifischer Funktionen oder Einstellungen in jeder Projektphase. 

  1. Verschiedene Drupal Recipes zusammenführen: Sie können Drupal Recipes einfach mischen oder ändern, um sie an Ihre Bedürfnisse anzupassen. Dies schafft ein flexibleres Site-Building-Erlebnis und hilft Ihnen, sich an neue Anforderungen anzupassen. 

  1. Kein Lock-in: Drupal Recipes bieten mehr Flexibilität im Vergleich zu Distributionen, sodass Sie Teile Ihrer Einrichtung ändern oder aktualisieren können, ohne an ein festes System gebunden zu sein. 

  1. Komponierbar: Sie können verschiedene Drupal Recipes mischen, was die Erstellung neuer Recipes vereinfacht. Wenn Sie sowohl Event-Registrierungs- als auch Commerce-Funktionen benötigen, können Sie einfach ein neues Recipe erstellen, das sowohl das Event- als auch das Commerce-Recipe enthält.

Drupal Recipe Modul Vorteile der Verwendung von Drupal Recipes OpenSense Labs

Drupal 11 Recipes: Wie unterscheiden sie sich von Drupal 10? 

Mit Drupal 10 führte das Drupal Recipe-Modul eine neue Methode ein, um alte Distributionen und Installationsprofile zu ersetzen. Dieses Drupal Recipe-Modul wurde für Drupal 10 entwickelt und ermöglichte flexible und site-spezifische Installationen. Benutzer konnten effizient benutzerdefinierte Setups erstellen, indem sie diese von ihrer ursprünglichen Basis trennten. Die Initiative für Distributionen und Recipes in Drupal 10 befand sich jedoch noch in der Anfangsphase. 

Das Drupal Recipe-Modul in Drupal 10 ermöglichte es Benutzern, Funktionen schnell zu ihrer Website hinzuzufügen, indem sie eine Reihe vorgefertigter Einstellungen verwendeten. Ein Recipe kann alles Konfigurierbare in Drupal enthalten, von einem grundlegenden Inhaltstyp bis zu einem vollständigen Satz von Funktionen. Sie können Ihre eigenen Drupal Recipes zum Teilen oder Verwenden erstellen, oder Sie können Drupal Recipes verwenden, die von anderen Drupal-Benutzern erstellt wurden. Während Drupal Recipes in dieser Version noch experimentell sind, sind sie in Version 11.1 funktional und stabil. 

Recipes in Drupal 11 sind eine aktualisierte Version für Site Builder und Entwickler. Sie bieten mehr Flexibilität, Modularität und einfachere Wartung als herkömmliche Installationsprofile und Distributionen. Beim Starten einer neuen Drupal-Site oder beim Hinzufügen von Funktionen erleichtern Recipes die Verwaltung der Konfiguration und machen sie effizienter. 

Drupal Recipes entwickeln sich weiter, um die Drupal-Site-Entwicklung schneller und besser an neue Anforderungen anzupassen. Dies wird dazu beitragen, Drupal für alle einfacher und leistungsfähiger zu machen.  

Sie können sie entweder von Grund auf neu erstellen oder bestehende Drupal Recipes verwenden. Es liegt an Ihnen! 

Lesen Sie auch:  

  1. SDC: Storybook & Single Directory Component integrieren 
  2. DrupalCon Barcelona: Rückblick 2024 aus Europa 
  3. RFP: Wie erstellt man eine RFP für Open-Source-Lösungen? 
  4. Drupal's Omnichannel-Fähigkeiten: Kundenbindung und -erlebnis verbessern 

Wichtige Erkenntnisse

  1. Drupal Recipes bieten eine Reihe von vorgefertigten Konfigurationen und Komponenten, die effektiv zur Erweiterung um neue Funktionen genutzt werden können. 

  2. Drupal Recipes können jederzeit im Lebenszyklus der Drupal-Anwendung hinzugefügt, entfernt oder mit verschiedenen Funktionen kombiniert werden. 

  1. Nach der Anwendung des Recipes wird es nicht mehr benötigt und kann aus dem Projekt entfernt werden, wobei alle Konfigurationen erhalten bleiben. 

  1. Drupal Recipes bieten größere Flexibilität als Distributionen, sodass Sie Komponenten Ihrer Einrichtung ändern oder aktualisieren können, ohne an ein festes System gebunden zu sein. 

  1. Drupal 11 Recipes bieten größere Flexibilität, Modularität und einfachere Wartung im Vergleich zu traditionellen Installationsprofilen und Distributionen. 

 

Abonnieren

Ready to start your digital transformation journey with us?

Verwandte Blogs

Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

„Fit. Schnell. Für die Ewigkeit gebaut.“ Das war nicht nur ein Slogan, sondern die Denkweise, mit der wir zur DrupalCon…

Erklärbare KI-Tools: SHAPs Stärke in der KI

Explainable AI tools Explainable AI And SHAP OpenSense Labs

Wissen Sie, was erklärbare KI-Tools sind? Erklärbare KI-Tools sind Programme, die zeigen, wie eine KI ihre Entscheidungen…

KI-Chatbots: Präzision und Persönlichkeit in Perfektion

Creating AI Chatbot OpenSense Labs

In der Welt der künstlichen Intelligenz ist die Entwicklung eines KI-Chatbots, der nicht nur akkurate Informationen liefert…