---
title: "OOP in Drupal: Objektorientierte Patterns im CMS"
lang: de
type: knowledge
canonical: https://www.arocom.de/wissen/drupal/oop-drupal
alternate: https://www.arocom.de/en/knowledge/drupal/oop-drupal
author: "Axel Roth"
last_updated: 2026-07-29
---

# OOP in Drupal: Objektorientierte Patterns im CMS

Seit Drupal 8 basiert das CMS auf objektorientierten Patterns:
Dependency Injection, Plugin-System, Event-Subscriber und Services.
Diese Architektur macht Drupal-Code testbar, wartbar und modular.
arocom entwickelt seit 2012 Drupal-Module mit OOP-Best-Practices
und sorgt für eine Codebasis, die langfristig tragfähig ist.

## OOP in Drupal: Objektorientierte Patterns im CMS

Drupal 7 war prozedural: Funktionen, Hooks und globale Variablen.
Mit Drupal 8 kam der Wechsel zu objektorientierter Programmierung.
Dieser Umbruch hat die Codequalität und Wartbarkeit von
Drupal-Projekten grundlegend verbessert.

## Services und Dependency Injection

In Drupal ist Geschäftslogik in Services gekapselt. Ein Service
ist eine PHP-Klasse, die über den Service-Container registriert
und bei Bedarf injiziert wird. Statt globaler Funktionsaufrufe
deklariert ein Modul seine Abhängigkeiten, der Container
liefert die richtigen Objekte.

Dieses Pattern macht Code testbar: In Tests können
Abhängigkeiten durch Mock-Objekte ersetzt werden. Es macht
Code modular: Services können ausgetauscht oder erweitert
werden, ohne andere Teile zu berühren.

## Das Plugin-System

Drupals Plugin-System ist das OOP-Äquivalent zu den alten
Hooks. Plugins sind Klassen, die ein Interface implementieren
und per Annotation oder Attribut registriert werden. Block-Plugins,
Feld-Plugins, Migrations-Plugins, das gesamte CMS basiert
auf diesem System.

Neue Funktionalität wird durch neue Plugin-Klassen hinzugefügt,
nicht durch Funktionen in .module-Dateien. Das reduziert
Namenskollisionen und verbessert die Autocompletion in der IDE.

## Events und Event-Subscriber

Drupal nutzt Symfonys EventDispatcher, um auf Ereignisse zu
reagieren. Statt hook_init() oder hook_page_alter() registrieren
Module Event-Subscriber, die auf spezifische Events hören.

Das entkoppelt Module voneinander: Ein Modul muss nicht wissen,
welche anderen Module auf dasselbe Event reagieren. Das System
ist erweiterbar, ohne bestehenden Code zu ändern.

## Was das für euer Projekt bedeutet

**Wartbarkeit.** OOP-Code ist strukturierter und leichter zu
verstehen. Neue Entwickler finden sich schneller zurecht.

**Testbarkeit.** Services mit injizierten Abhängigkeiten sind
isoliert testbar. Das reduziert Fehler bei Updates und
Erweiterungen.

**Zukunftssicherheit.** Drupals OOP-Architektur folgt
PHP-Standards (PSR-4, PSR-7). Entwickler mit Symfony- oder
Laravel-Erfahrung arbeiten sich schnell ein.

## Drupal-Entwicklung nach Best Practices?

arocom entwickelt Drupal-Module mit OOP-Standards und
automatisierten Tests. Der [Zukunfts-Check](https://www.arocom.de/zukunfts-check)
bewertet die Codequalität eurer Plattform. Ab 2.500 EUR
zzgl. MwSt., anrechenbar auf das Folgeprojekt.

**Aus arocom-Projekten:**

- Für den Gentner Verlag betreiben wir ein Reichweitenportal ([haustec.de](https://www.arocom.de/referenzen/haustec)) und mehrere Fachportale (tga-fachplaner.de und weitere) auf einer gemeinsamen Drupal-Multisite, ein einziger Code-Stack, getrennte Redaktionen, gemeinsame Komponentenbibliothek.
- Bei [HENN](https://www.arocom.de/referenzen/henn) (Architekturbüro) haben wir das drupal/ai Modul produktiv eingesetzt, KI-gestützte Bild-Auszeichnung und semantische Suche direkt im Backend.

### Muss man OOP können, um Drupal zu nutzen?

Nein. Redakteure und Site-Builder arbeiten mit der grafischen Oberfläche. OOP-Kenntnisse sind für die Modulentwicklung und individuelle Anpassungen relevant.

### Funktionieren alte Drupal-7-Module in Drupal 11?

Nein. Der Wechsel von prozedural zu OOP erfordert eine Portierung. Drupal 7 hat das End-of-Life erreicht. arocom begleitet die Migration und Portierung bestehender Module.

### Welche PHP-Version braucht Drupal 11?

Drupal 11 erfordert PHP 8.3 oder neuer. Damit stehen alle modernen PHP-Features zur Verfügung: Typed Properties, Enums, Fibers und Attribute.

## Weiterlesen

- [Symfony und Drupal](https://www.arocom.de/wissen/drupal/symfony): Warum Drupal auf Symfony basiert
- [Modulentwicklung](https://www.arocom.de/wissen/drupal/modulentwicklung): Eigene Drupal-Module entwickeln
- [PHP im Drupal-Kontext](https://www.arocom.de/wissen/entwicklung/php): Die Programmiersprache hinter Drupal
