logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

Erste Schritte – Referenzinformationen (Drupal 8)

20/06/2025, by Ivan

Drupal 8 verwendet eine Reihe fortgeschrittener PHP-Sprachfunktionen und komplexer externer Bibliotheken, um Drittentwicklern die fortschrittlichste API aller verfügbaren CMS bereitzustellen. Obwohl erfahrene Drupal 7 Entwickler einige bedeutende Änderungen bemerken werden, bleibt der Großteil der Grundstruktur vertraut.

Wenn Ihnen einige der im Schritt-für-Schritt-Modulentwickler-Tutorial für Drupal 8 vorgestellten Materialien neu sind, kann das untenstehende Material hilfreich sein. Für das Verständnis des Drupal 8 Moduls sind jedoch keine umfassenden Vorkenntnisse erforderlich.

Objektorientierte Programmierung

OOP (Objektorientierte Programmierung) mag zunächst abschreckend wirken, hat sich aber inzwischen als beste Vorgehensweise etabliert.
Für einen allgemeinen Überblick über PHP Best Practices lesen Sie phptherightway.com. Drupal verwendet nicht alle dort dokumentierten Tools und Methoden, aber die Seite bietet eine ausgezeichnete Einführung in PHP und viele Sprachfeatures.

Aktualisieren Sie Ihr OOP-Wissen, indem Sie die offizielle PHP-Dokumentation zu Klassen und Objekten lesen sowie einige der folgenden guten Tutorials:

Drupal 8 verwendet außerdem einige verbreitete Design-Patterns, mit denen Sie sich vertraut machen sollten:

Factory Pattern und Late Static Bindings
Design-Patterns der Softwareentwicklung (auf Wikipedia)
Grundlagen der Programmierung: Design-Patterns (bei lynda.com)
@todo: Weitere Links zur Dokumentation der verwendeten Patterns hinzufügen ...

PHP Namespaces

Wenn Sie mit PHP Namespaces nicht vertraut sind, sehen Sie sich einige der folgenden Artikel an:

Meistens verwendet Drupal modulbasierte Namespaces, denen der Code angehört.

Beispiel: Namespace für das Modul block.module

namespace Drupal\block;

@todo: Erklären, warum manchmal Drupal\ und manchmal Drupal\\[Controller|Form|Plugin|etc.] verwendet wird und wie ich wissen soll, welchen ich nehmen muss ...

Erfahren Sie mehr über die Drupal Namenskonventionen für Namespaces. Mehr über PSR-4 Verwendung in Drupal hier. Gut konfigurierte IDEs können PHP Namespaces erkennen und bieten dann Unterstützung und Autovervollständigung.

Dependency Injection

Obwohl Dependency Injection eigentlich ein weiteres OOP Design-Pattern ist, wird es hier separat genannt, da Drupal 8 dieses Konzept intensiv nutzt. Es ist wichtig, grundlegendes Verständnis zu haben, um viele der Kern-APIs nutzen zu können.

Lesen Sie mehr über Dependency Injection in PHP und weitere Artikel auf dieser Seite. Besonders empfehlenswert ist dieser Artikel, da Drupal intensiv den Symfony Service Container verwendet, auf den dort Bezug genommen wird.

Siehe auch:

 

Symfony

Symfony ist ein PHP-Framework, das Drupal übernommen hat, um Code-Duplikation in verschiedenen PHP-Projekten zu reduzieren. Ein Großteil des Codes, den Drupal 8 zur Verwaltung von Routing, Sessions und Service-Containern nutzt, stammt aus Symfony 2 (und wurde im Verlauf der Drupal 8 Entwicklung zu Symfony 3 migriert). Wenn Sie mehr darüber erfahren möchten, warum diese Entscheidung getroffen wurde, sehen Sie sich diese Präsentation des Hauptentwicklers alexpott an.

Schauen Sie sich das Symfony 2 Handbuch an, um Ihre Symfony-Kenntnisse aufzufrischen. Obwohl nicht alles zum Verständnis von Drupal erforderlich ist, macht es Sie zu einem besseren Drupal- und PHP-Entwickler, wenn Sie Symfony verstehen. Vielleicht interessiert Sie auch das Symfony Glossar.

Überprüfen Sie core/composer.lock, um die Symfony-Bibliotheken zu sehen. Ab Drupal 8.6.15 sind das Symfony PHP und eng verwandte Bibliotheken:

...
"symfony/class-loader": "~3.4.0",
"symfony/console": "~3.4.0",
"symfony/dependency-injection": "~3.4.26",
"symfony/event-dispatcher": "~3.4.0",
"symfony/http-foundation": "~3.4.26",
"symfony/http-kernel": "~3.4.14",
"symfony/routing": "~3.4.0",
"symfony/serializer": "~3.4.0",
"symfony/translation": "~3.4.0",
"symfony/validator": "~3.4.0",
"symfony/process": "~3.4.0",
"symfony/polyfill-iconv": "^1.0",
"symfony/yaml": "~3.4.5",
"twig/twig": "^1.38.2",
"doctrine/common": "^2.5",
"doctrine/annotations": "^1.2",
...

Annotations

Drupal 8 verwendet PHP-Annotations – spezielle @docblock-Kommentare, die Ihrem Code mit einer speziellen Syntax hinzugefügt werden – zur Erkennung von Plugins und zur Bereitstellung von zusätzlichem Kontext bzw. Metadaten für ausführbaren Code. Die Annotations werden mit Doctrine Annotations Parser (v.1.6.) gelesen und in Informationen umgewandelt, die Drupal verwenden kann, um besser zu verstehen, was Ihr Code tut.

Erfahren Sie mehr über die Verwendung von Annotations zur Plugin-Erkennung.

Sehen Sie sich die Liste aller verschiedenen Annotationstypen in Drupal 8 an.

Siehe auch: PHPDoc (auf Wikipedia)

Plugins

Plugins bieten kleine Funktionalitäten, die leicht durch andere Plugins ersetzt werden können. Plugins mit ähnlicher Funktionalität gehören zum selben Typ. Beispielsweise ist der „Feld-Widget“-Typ ein Plugin-Typ, und jedes einzelne Feld-Widget (z. B. Textfeld, Textbereich, Datum usw.) wird durch ein Plugin realisiert.

Erfahren Sie mehr über das Plugin-API in Drupal 8.

Services

In Drupal 8 ist ein Service jedes Objekt, das vom Service-Container verwaltet wird. Das Konzept von Services wurde eingeführt, um wiederverwendbare Funktionen zu trennen und diese Services anschließbar und austauschbar zu machen, indem sie im Dependency Injection Service Container registriert werden, mit dem sie eng verbunden sind.

Siehe auch: Service-Container für Drupal-Entwickler

Weitere Ressourcen

Nachfolgend finden Sie eine Liste zusätzlicher Ressourcen, die Ihnen helfen, sich mit Drupal 8 vertraut zu machen.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.