Benutzerdefinierte Drupal 8-Module – Erstellen Sie effiziente Drupal 8-Module mit diesen Best Practices

Veröffentlicht: 2020-03-17

Die benutzerdefinierten Drupal 8-Module können von supereinfach bis hochkomplex reichen, je nach Bedarf für die Anpassung. Die wahre Leistungsfähigkeit von Drupal kann mit benutzerdefinierten Modulen in Drupal 8 erschlossen werden. Unabhängig von der Komplexität eines benutzerdefinierten Moduls können Sie durch Befolgen einiger Best Practices effizientere benutzerdefinierte Module erstellen. Also lasst uns anfangen!

Kürzlich war ich auf der Suche nach einem Modul in Drupal und da ist mir gerade etwas eingefallen. Wenn Sie in der Drupal-Welt nach Lösungen suchen oder nach Lösungen suchen, hören Sie vielleicht als erstes: "Dafür gibt es ein Modul!". Obwohl Drupal fast 70 Kernmodule enthält, sind es die zusätzlichen Module, die von der Drupal-Community entwickelt wurden, die die Funktionalität der Plattform erweitern. Und mit Drupal 8 gibt es eine völlig andere Architektur und einen modernisierten Ansatz für CMS, mit einer Verschiebung in Richtung Objektorientierung, um die Gesamteffizienz und Softwarequalität zu verbessern. Das Erstellen eines benutzerdefinierten Drupal 8-Moduls zur weiteren Erweiterung der Fähigkeiten von Drupal ist nicht mehr dasselbe wie in Drupal 7.

drupal 8 benutzerdefinierte Module

Was ist ein benutzerdefiniertes Modul in Drupal 8? Warum einen erstellen?

Ein benutzerdefiniertes Drupal 8-Modul ist im Grunde ein Modul, das aus benutzerdefinierten Funktionen besteht. Das benutzerdefinierte Drupal-Modul könnte mit einem beigesteuerten Modul beginnen, das kleine Anpassungen erfordert, oder einem völlig neuen Drupal 8-Modul mit neuen Sätzen nicht vorhandener Funktionalitäten, die an das Projekt angepasst sind. Oder manchmal erfordert eine Migration von Drupal 7 zu Drupal 8 ein benutzerdefiniertes Modul, da das Drupal 7-Modul in Drupal 8 nicht verfügbar ist mit eingebautem Satz von Kernmodulen.

Unabhängig von Ihren Erfahrungen mit den vorherigen Versionen von Drupal hat die Modulentwicklung in Drupal 8 ihre eigenen Herausforderungen. Um Ihnen eine gute Vorstellung zu geben, gibt es einige Unterschiede zwischen Drupal 7 und Drupal 8. Die wichtigsten sind, dass Drupal 8 die neueste Version von PHP 7 erfordert und Symphony verwendet, ein PHP-Framework, das auf objektorientierter Programmierung basiert. Nichtsdestotrotz ist der neue Ansatz von Drupal 8 ein futuristischer Ansatz und hat Türen für eine breitere Gruppe von Entwicklern geöffnet, die mit OOP- und MVC-Konzepten bestens vertraut sind.

Außerdem gibt es Änderungen in der Art und Weise, wie ein Modul erstellt wird, und es gibt bestimmte bewährte Verfahren, um mit den Gemeinschaftsstandards Schritt zu halten. Lassen Sie uns mehr darüber sprechen.

Änderung der Dateistruktur von Drupal 8

Ein wichtiger Punkt ist, dass sich bei der Entwicklung von Drupal 8-Modulen die Dateistruktur stark von der in Drupal 7 unterscheidet. Benutzerdefinierte Module in Drupal 8 werden im Verzeichnis /modules gespeichert, im Gegensatz zu Drupal 7, wo dieses Verzeichnis für den Kern reserviert war Module. Die Kernmodule von Drupal 8 gehen nun in das Verzeichnis /core .
Als nächstes müssen Sie eine .info.yml- Datei erstellen, die die Metadaten bereitstellt, um Drupal 8 mitzuteilen , dass Ihr benutzerdefiniertes Modul vorhanden ist. Dieser Vorgang ähnelt dem von Drupal 7.

name - Dieser Schlüssel dient dazu, einen Namen für Ihr benutzerdefiniertes Modul bereitzustellen.
type - Dieser Schlüssel definiert den Typ der Erweiterung (Modul/Theme/Profil).
description - Dieser Schlüssel liefert die detaillierte Beschreibung des benutzerdefinierten Moduls (angezeigt auf der Modullistenseite).
Paket - Dieser Schlüssel gibt das Paket an, in dem das Modul enthalten sein soll.
version - Gibt die Version des Moduls an.

Wenn Ihre Datei etwa so aussieht wie ' blogexmple_module.info.yml ', sieht die Syntax wie folgt aus:
Name - Blogbeispiel-Modul
Typ – Modul
Beschreibung - Ein einfaches Demomodul
Paket – Custom
Version - 1.0
Kern - 8.x

Verwendung von Konfiguration vor Code

Den Code jedes Mal neu schreiben zu müssen, wenn Sie Änderungen vornehmen, ist eine ziemliche Aufgabe. Anstatt eine Klasse hart in ein Thema zu codieren, legen Sie die Werte in der Konfiguration fest und wenden Sie sie mit dem Code an. Dies gewährleistet eine einfache und schnellere Codierung und führt zu qualitativ hochwertigen Modulen. Da wiederverwendbare Codes die Norm beim Schreiben von Qualitätssoftware sind, sorgen Konfigurationen im Code für erweiterte Funktionalität und "leicht zu ändernde" Funktionen.

Nutzen Sie die Drupal-Angebote

Sobald Sie Ihr Modul erstellt haben, sollten Sie wissen, dass Drupal mit verschiedenen integrierten Admin-Funktionen zum Speichern und Anzeigen von Moduldaten und -einstellungen ausgestattet ist. Die Moduleinstellungsseite kann mit dem Hook-Menü definiert werden . Dieser Hook ermöglicht es Modulen, Pfade zu registrieren, um zu definieren, wie URL-Anfragen behandelt werden. Bei der Callback-Verwendung der Seite drupal_get_form müssen Sie in der Callback-Funktion lediglich die zu speichernden Einstellungen definieren und zurückgeben.

Zu viele Köche verderben den Brei

Nachdem sie lange Zeit an großen Drupal-Sites gearbeitet hatten, hätten Drupal-Entwickler gelernt, dass Hunderte von Modulen zusammenwirken können, um ein effektives Großprojekt zu produzieren. Bei der Arbeit an Drupal-Unternehmenswebsites ist es jedoch wichtig zu beachten, dass die Vermeidung eines einzelnen schlechten Moduls größere Auswirkungen hat als die Vermeidung von 30 gut entwickelten Drupal-Modulen (in dem Versuch, weniger Module zu verwenden). Entwickler neigen dann dazu, ihre eigenen Module zu programmieren, anstatt vorhandene Module wiederzuverwenden. Je höher die Anzahl benutzerdefinierter Module, die Sie für ein Projekt schreiben, desto aufwändiger ist die spätere Pflege und Änderung Ihrer Drupal-Site. Ziehen Sie stattdessen in Betracht, Ihre Module auf Github zu veröffentlichen. Auf diese Weise können Sie die Verwendung einer großen Sammlung benutzerdefinierter Module vermeiden und werden stattdessen dazu ermutigt, wiederverwendbaren Code mit der erforderlichen Konfiguration zu erstellen.

Umwelt- und Codierungsstandards

Die Entwicklungsumgebung ist ein wichtiger Einflussfaktor, da sie dafür sorgt, dass ein Drupal-Projekt problemlos läuft. Drupal-Entwicklungsunternehmen sorgen dafür, dass das gesamte Team in einer exakt gleichen Entwicklungsumgebung für einen effizienten Workflow arbeitet.

Bei der Arbeit in einer solchen Umgebung besteht eines der größten Probleme darin, sicherzustellen, dass der Code sauber und wartbar ist. Drupal-Entwickler müssen sicherstellen, dass ihr Code lesbar ist und für alle, mit denen sie arbeiten, Sinn macht. Und dies gilt nicht nur für die Teammitglieder oder jeden aus Ihrer Organisation, sondern auch für die größere Drupal-Community selbst. Da die Einbeziehung der Community ein wesentlicher Bestandteil der Drupal-Entwicklung und ein Schlüsselaspekt in verteilten Teams ist, die effizient zusammenarbeiten, hilft die Einhaltung der Codierungsstandards dabei, die Ziele eines Projekts zu erreichen.