
Contao 5 Bundle Entwicklung: Die Masterclass für echte Entwickler

Willkommen zur ultimativen Anleitung für moderne Contao 5 Bundle Entwicklung. Hast du genug von Tutorials, die bei „Hello World“ aufhören? Die Dokumentation ist wichtig, aber sie zeigt dir selten, wie du die Puzzleteile zu einem robusten Ganzen zusammensetzt. In dieser Serie machen wir Schluss mit theoretischem Ballast. Wir bauen echte Software.
Wenn du Contao 5 Bundle Entwicklung meistern willst, brauchst du Praxisbezug. Deshalb entwickeln wir gemeinsam das BeachsideBundle: Ein vollständiges Strandkorb-Buchungssystem für Binz. Von der ersten Zeile composer.json bis zum automatisierten E-Mail-Versand. Wir nutzen den vollen modernen Tech-Stack: Symfony 6, Doctrine ORM, Twig und PHPUnit.
Das hier ist kein einfacher Guide. Es ist der Bauplan für deine Zukunft als High-Level Contao Architekt. Schnall dich an, wir öffnen die IDE.
Der Schlachtplan: In 10 Schritten zum fertigen Bundle
Hier findest du alle Teile der Serie. Jeder Artikel baut logisch auf dem vorherigen auf, ist aber in sich geschlossen und liefert sofort funktionierenden Code für deine Contao 5 Bundle Entwicklung.
1. Das Fundament gießen: Setup & Architektur

Der erste Schritt in der Contao 5 Bundle Entwicklung ist eine saubere Struktur. Wir verabschieden uns von alten Contao-4-Gewohnheiten und setzen ein natives Symfony Bundle auf.
Das lernst du: Wie du die
composer.jsonkorrekt konfigurierst, das Contao Manager Plugin registrierst und warum Dependency Injection dein neuer bester Freund ist.Tech-Stack: PSR-4, YAML, Services. Bundle-Struktur & Setup einrichten
2. Datenmodellierung: Doctrine statt SQL

Vergiss manuelle database.sql Dateien. Wir definieren unsere Strandkörbe als moderne PHP-Klassen (Entities).
Das lernst du: Wie du Datenbanktabellen mit PHP 8 Attributen erzeugst und Relationen sauber modellierst.
Tech-Stack: Doctrine ORM, Entities, Repository Pattern. Datenbanken mit Doctrine modellieren
3. Das Backend: Ein Traum für Redakteure (DCA)

Ein Modul ist nur so gut wie seine Bedienbarkeit. Wir bauen Eingabemasken, die Spaß machen – inklusive Paletten-Manipulatoren und Grid-Views.
Das lernst du: DCAs verstehen, Paletten dynamisch anpassen und Listenansichten optimieren.
Tech-Stack: DCA, Event Listener, Data Container. Perfekte Backend-Masken erstellen
4. Die Logik der Buchung: Relationen & Zeiträume

Jetzt wird es komplex. Wir verknüpfen Kunden, Zeiträume und Strandkörbe.
Das lernst du: Wie man 1-zu-n Beziehungen in der Datenbank abbildet und Datumsbereiche effizient speichert.
Tech-Stack: Foreign Keys, DateTime Immutable, SQL Indizes. Komplexe Daten-Relationen meistern
5. Das Gehirn: Der Availability-Service

Wie verhindern wir Doppelbuchungen? Wir schreiben einen Service, der die Verfügbarkeit prüft – das Herzstück unserer Applikation.
Das lernst du: Business-Logik aus dem Controller in Services auslagern und wiederverwendbar machen.
Tech-Stack: Service Oriented Architecture (SOA), QueryBuilder. Business-Logik & Services programmieren
6. Vertrauen ist gut, Tests sind besser

Bevor wir das Frontend anfassen, beweisen wir, dass unsere Logik stimmt. Wir schreiben automatisierte Tests.
Das lernst du: Wie du PHPUnit in Contao integrierst und deinen ersten Unit-Test schreibst.
Tech-Stack: PHPUnit, Mocking, TDD. Unit Testing in Contao 5
7. Frontend I: Daten ausgeben mit Twig

Weg mit den alten PHP-Templates. Wir nutzen moderne Symfony Controller und Twig, um unsere Strandkörbe auf die Webseite zu bringen.
Das lernst du: Daten im Controller holen, aufbereiten und sicher im Template rendern.
Tech-Stack: AbstractController, Response, Twig. Controller & Twig Templates
8. Frontend II: Das Buchungsformular

Wir bauen ein Formular, das prüft, validiert und speichert – sicher vor Angriffen und fehlerhaften Eingaben.
Das lernst du: Symfony Forms nutzen, Custom Validatoren schreiben und CSRF-Schutz gewährleisten.
Tech-Stack: FormBuilder, Constraints, Request Handling. Formulare & Validierung bauen
9. Kommunikation: Das Notification Center

Nach der Buchung ist vor der E-Mail. Wir binden das Contao Notification Center ein, damit der Kunde sofort Bescheid weiß.
Das lernst du: Events dispatchen und Drittanbieter-Erweiterungen nahtlos integrieren.
Tech-Stack: EventDispatcher, Notification Center API. E-Mails & Benachrichtigungen versenden
10. Kommandozentrale: Backend-Dashboards & Custom Routing

DCA-Listen reichen für eine echte Datenanalyse oft nicht aus. Wir lösen uns vom Standard und bauen ein maßgeschneidertes, interaktives Dashboard für den Vermieter direkt ins Contao-Backend.
Das lernst du: Eigene Symfony-Controller in das Backend integrieren, Menüeinträge dynamisch erzeugen und Ansichten mit Rollen absichern.
Tech-Stack: Symfony Controller (
_scope => 'backend'), KnpMenu Event-Subscriber, Twig Backend-Layout,#[IsGranted]. Eigene Backend-Routen & Datenvisualisierung.
11. Autopilot: Console Commands & Automatisierung

Ein professionelles System muss nicht nur auf Klicks reagieren, sondern selbstständig agieren. Wir verlagern zeitintensive Aufgaben wie die Datenarchivierung sicher in den Hintergrund, ohne die Ladezeiten der Website für die Besucher zu belasten.
Das lernst du: Eigene interaktive CLI-Befehle schreiben, zeitgesteuerte Skripte für den Server registrieren und Redakteuren Live-Feedback bei schweren Berechnungen geben.
Tech-Stack: Symfony Console (
#[AsCommand]), Contao Cronjob Framework (#[AsCronJob]), Jobs Framework (Contao 5.7+), SymfonyStyle (Progress Bar). Serverseitige Automatisierung & CLI.
12. Entkopplung: Headless CMS & API-First Architektur

Monolithische Websites stoßen bei Multi-Channel-Strategien schnell an ihre Grenzen. Wir brechen die Architektur auf und verwandeln Contao in ein leistungsstarkes, kopfloses Backend für Smartphone-Apps, Terminals und moderne JavaScript-Frontends.
Das lernst du: Die API Platform nahtlos integrieren, sichere REST-Endpunkte vollautomatisch generieren, sensible Kundendaten filtern und externe Frontends reibungslos anbinden.
Tech-Stack: API Platform (
#[ApiResource]), Symfony Serializer (#[Groups]), Custom State Provider (ProviderInterface), NelmioCorsBundle (CORS), JWT Authentication. Headless CMS & REST-APIs.
13. Der Feinschliff: Caching & Release

Zum Schluss machen wir das Bundle renntauglich und bereit für die Veröffentlichung.
Das lernst du: HTTP-Caching korrekt setzen (damit die Seite fliegt) und Texte übersetzbar machen.
Tech-Stack: HttpCache, Translator, XLIFF. Performance, Caching & Release
14. Open Source Release: Das eigene Modul auf Packagist veröffentlichen

Was als lokales Feature in einem Kundenprojekt begann, wird nun ein eigenständiges Softwarepaket für die weltweite Entwickler-Community. Wir durchtrennen die Nabelschnur zur Hauptinstallation und veröffentlichen unsere Strandkorb-Erweiterung professionell als Open-Source-Modul.
Das lernst du: Den Code architektonisch sauber isolieren, mit Path-Repositories lokal testen, Semantic Versioning (SemVer) anwenden, das Bundle bei Packagist einreichen und es inklusive Logo und deutschen Texten in den Suchindex des Contao Managers bringen.
Tech-Stack: Packagist.org, Composer Path Repositories (
*@dev), Git Tags, Semantic Versioning, contao/package-metadata, Contao Manager, Open Source Release Management.
Teil der Serie
Contao 5 Masterclass: The Beachside Project
Contao 5 Bundle Entwicklung: Die Masterclass für echte Entwickler Pillar
Contao 5 Bundle Setup: Das Fundament für professionelle Erweiterungen
Contao 5 Doctrine Entities: Moderne Datenmodellierung statt SQL-Chaos
Contao 5 DCA: Perfekte Backend-Masken für Entities erstellen
Contao 5 Doctrine Relations: Wir bauen die Buchungs-Logik
Contao 5 Service Layer: Business-Logik sauber kapseln
Contao 5 Unit Testing: Code-Absicherung mit PHPUnit & Test-Case
Contao 5 Twig Templates: Frontend-Ausgabe mit Fragment Controllern
Contao 5 Symfony Forms: Professionelle Formularverarbeitung
Contao 5 Notification Center: Zentrale Kommunikation & E-Mail-Workflows
Contao 5 Backend Dashboards & Custom Routing
Contao 5 Console Commands: Automatisierung & Hintergrund-Jobs
Contao 5 Headless CMS API: REST-Schnittstellen bauen
Contao 5 Performance, Caching & Zero-Downtime Deployment
Contao 5 Erweiterung veröffentlichen: Packagist & Open Source
Häufig gestellte Fragen (FAQ)
Ausblick: Wohin die Reise geht
Mit dieser Serie hast du das Werkzeug, um komplexe Web-Applikationen auf Basis von Contao zu bauen. Du bist nicht mehr nur „Webdesigner“, sondern Software-Architekt. Im nächsten Schritt könnten wir dieses Bundle erweitern: Eine JSON-API für eine mobile App? Ein Vue.js Frontend für interaktive Platzwahl? Die Basis steht.
Bist du bereit? Dann starte jetzt mit Teil 1.

Dietrich Bojko
Senior Webentwickler
Webinteger arbeitet seit vielen Jahren produktiv mit
Linux-basierten Entwicklungsumgebungen unter Windows.
Der Fokus liegt auf
performanten Setups mit WSL 2, Docker, PHP, Node.js und modernen
Build-Tools in realen Projekten –
nicht auf theoretischen Beispielkonfigurationen.
Die Artikel dieser Serie entstehen direkt aus dem täglichen Einsatz in Kunden- und Eigenprojekten und dokumentieren bewusst auch typische Fehler, Engpässe und bewährte Workarounds.

