Für Entwickler, die mit Drupal 7 vertraut sind, ist das Upgrade auf Drupal 8 eine große Umstellung. Die Architektur und der API sind vollständig neu aufgebaut. Es ist wichtig, sich mit den grundlegenden Konzepten auseinander zu setzen, bevor man mit der Modulentwicklung beginnt.
Hier ist ein Überblick der wichtigsten Grundlagen für die Entwicklung mit Drupal 8.
1. Objektorientierte Programmierung (OOP) mit PHP
2. Symfony 2, das PHP Framework auf welchem Drupal 8 aufbaut
- Es ist seht zu empfehlen das Symfony Book durch zu arbeiten
- Symfony Documentation
- Überblick darüber, welche Symfony Komponenten in Drupal 8 verwendet werden
3. Der grundlegenden Konzepte und der Drupal 8 API
Eine nicht zu unterschätzende Quelle ist das Durchforsten des Drupal 8 Codes. Zuerst sollte man sich einen Überblick über die Strukturen des Drupal 8 Core's beschaffen. In den Drupal Modulen sieht man viele praktische funktionsfähige Beispiele.
Die Symfony Library befindet sich unter:
- vender/symfony
Die grundlegenden Drupal 8 Komponenten:
- core/lib/Drupal/Components
Auf den Core Komponenten bauen die Subsysteme auf:
- core/lib/Drupal/Core
Auf den Subsystemen wiederum bauen die Drupal 8 Core Module auf:
- core/modules
Überblick über die grundlegenden Themen
3.1 Drupal 8 Installation und Verwalten der Ressourcen mit Composer
3.1 Namensräume/Namespaces
3.2 Service Container und Dependency Injection
- Design Pattern: Dependency Injection
- Service Container in Symfony
- Services and Dependency Injection Container in Drupal 8 API Doku
-
Checkout Example Project Service Example
3.3 Das Plugin System
- Plugin API
- My favorite Article about the Durpal 8 Plugin System
- Checkout Example Project PluginType Example
3.4 Content Entities
3.5 Simple Configuration und Configuration Entites
3.6 Event Dispatcher und Event Subscriber
- Symfony The EventDispatcher Component
- Drupal 8 developer API
- Article: Responding to Events in Drupal 8
Conding Standards und best Practice
4. Erlernen der Modulentwicklung
Zuerst sollte man sich mit der Struktur von Modulen vertraut machen.
4.1 Grundlegende Modulstruktur
4.2 Im "Example Project" findet man gut dokumentierte Beispiele
Als Übung kann man für jedes der grundlegenden Konzepte ein eigenes funktionsfähiges Beispielmodul schreiben.
- Plugin
- PluginType
- Simple Configuration Example
- ContentEntity
- ConfigEntity
- Event
- Event Subscriber
- Form API Example
- Controller mit Entity Query API und Entity API Methoden
4.3 Inspektion von Core Modulen und guten contrib Modulen
In komplexeren contrib Modulen findet man Beispiele wie die Konzepte wie Services, Plugins, Plugin-Types, Content Entities oder Config Entities kombiniert werden können.