Eliminierung technischer Schulden mit PHPStan, Rector PHP und PHPUnit. Über 20 Jahre Praxiserfahrung in skalierbaren Backends.
- Erstellt:
- Aktualisiert:
- Autor:
- Roland Golla
Was ist Sulu CMS?
Sulu ist ein Open Source Content Management System auf Basis des Symfony Frameworks. Es richtet sich an Entwickler und Redakteure gleichermaßen: Backend Teams arbeiten mit sauberer Symfony Architektur, Redakteure mit einer aufgeräumten Admin Oberfläche und Live Preview.
Sulu ist als Fullstack CMS und als Headless Backend nutzbar. Seiten, Snippets, Artikel und Medien lassen sich strukturiert pflegen und über eine JSON API an beliebige Frontends ausliefern, etwa an TypeScript Anwendungen oder statische Astro Seiten.
Sulu steht unter MIT Lizenz und wird von der Sulu GmbH gepflegt. Es gibt keine Lizenzkosten und keine Editionen mit abgeschnittenem Funktionsumfang. Gepflegt werden zwei Linien: die aktuelle 3.0 mit der neuen Content Architektur und der Long Term Support Zweig 2.6 für Bestandsprojekte.
Sulu CMS mit NCA: Schnelle Hilfe vom Experten
Never Code Alone betreibt die eigene Plattform nevercodealone.de auf Sulu und entwickelt seit Jahren produktiv damit. Wir kennen das Symfony Framework unter der Haube, haben über 50 kostenlose Sulu Tutorials veröffentlicht und betreiben einen eigenen Sulu CMS MCP Server. Diese Praxistiefe unterscheidet uns von Generalisten, die Sulu nur vom Datenblatt kennen.
Wir helfen Teams beim PHP Consulting rund um Sulu und Symfony: vom kontrollierten PHP Update über Refactoring gewachsener Codebases mit Rector PHP und PHPStan bis zur CI/CD Pipeline, die bei jedem Push Coding Standards, statische Analyse und Tests durchlaufen lässt. Wer Sulu von Grund auf lernen will, findet in unserer Sulu CMS PHP Schulung den passenden Einstieg. Und wer die KI Features des Systems ausreizen möchte, findet Details im Beitrag zu Sulu.ai für PHP Entwickler.
Gesetzliche Konformität & Inklusion. Optimierung von Performance und Conversion durch radikal nutzerzentriertes, universelles Design.
Skalierbare KI-Systeme mit echtem Code Ownership. CI/CD, Backup-Strategien und Infrastruktur, die mit deinem Team wächst.
Sulu 3.0: Die neue Content Architektur
Sulu 3.0 ist der größte Umbau in der Geschichte des CMS. Drei Kernbereiche wurden ausgetauscht, und alle drei betreffen die Art, wie Inhalte gespeichert und gesucht werden.
PHPCR raus, Doctrine ORM rein. Statt der PHP Content Repository Speicherung nutzt Sulu jetzt Doctrine ORM. Inhalte liegen in normalen relationalen Tabellen, die sich mit vertrauten Werkzeugen migrieren, indexieren und debuggen lassen. Für die meisten PHP Teams ist das ein enormer Vorteil gegenüber der eigenwilligen PHPCR Welt.
Document Manager wird dimensionsbasiertes Content Modell. Lokalisierung und Publishing Zustände werden über Dimensionen abgebildet statt über den alten Document Manager. Das Modell ist näher an klassischen Doctrine Entities und dadurch leichter zu verstehen.
MassiveSearch wird SEAL. Die Suche läuft jetzt über die SEAL Suchabstraktion, die verschiedene Suchbackends hinter einer einheitlichen API kapselt. Das betrifft vor allem das Headless Bundle, dessen Suchendpunkt komplett auf SEAL umgestellt wurde.
Ein erklärtes Ziel der Releases war, so nah wie möglich am Verhalten von Sulu 2.6 zu bleiben. Bestehende Projekte sollen mit minimalen Änderungen aktualisieren können. Einige Breaking Changes bleiben und stehen im jeweiligen Upgrade Guide des Bundles. Seit Sulu 3.0.9 unterstützt der Core Symfony 8, und inzwischen sind auch die Bundles für 3.0 nachgezogen. Wer noch auf 2.6 bleibt, wird weiter unterstützt: Der Zweig bekommt regelmäßige Patch Releases, und jedes Bundle pflegt eine 2.x Linie mit Symfony 7 Support.
Die sechs Bundles für Sulu 3.0 im Überblick
Mit dem 3.0 Release sind die sechs meistgenutzten Ökosystem Bundles auf die neue Content Architektur umgestellt. Seit Oktober 2026 erlauben alle sechs auch Symfony 8. Jedes Bundle hat eine eigene Detailseite in diesem Glossar. Die Tabelle zeigt aktuelle Version und Kernänderung auf einen Blick, darunter geht es pro Bundle in die Tiefe.
Sicherheit und KI Transparenz in Sulu
Zwei Themen sind in beide gepflegten Linien eingezogen, in die aktuelle 3.0 und in den Long Term Support Zweig 2.6. Beide betreffen den Redaktionsalltag direkt und beide kamen aus der Community, nicht aus dem Kernteam.
Zwei Faktor mit Authenticator App. Sulu konnte den zweiten Faktor lange nur per Mail verschicken. Das schützt den Admin Zugang mit einem Postfach, das selbst oft nur hinter einem Passwort liegt. Jetzt gibt es TOTP: im Profil die Methode wählen, QR Code scannen, den ersten erzeugten Code bestätigen. Erst danach ist die Methode aktiv, man sperrt sich also nicht mitten im Setup aus. Backup Codes lassen sich je Methode erzeugen, und wenn jemand sein Handy verliert, setzt ein Administrator die Einrichtung über die Berechtigungen des Nutzers oder über die Konsole zurück. Dass das Feature auch im LTS liegt, ist die eigentliche Nachricht: Bestandsprojekte müssen für eine Security Anforderung keinen Major Sprung machen. Seit 2.6.27 und 3.0.10 führt Sulu Nutzer bei Pflicht 2FA zusätzlich geführt durch die Einrichtung, mehr dazu im nächsten Abschnitt.
Herkunft und KI Kennzeichnung für Medien. Jede Dateiversion in der Medienverwaltung trägt jetzt eine Herkunft mit vier möglichen Werten: menschlich erstellt, KI generiert, KI bearbeitet oder unbekannt. Wählst du einen der beiden KI Werte, klappt ein Abschnitt für Hinweistext und Label Icon auf. Damit lässt sich die Transparenzpflicht des EU AI Act direkt im CMS erfüllen, statt sie in einer Tabelle nebenher zu pflegen. Bestehende Medien starten auf unbekannt. Auf 3.0 kommen die nötigen Datenbankänderungen als Doctrine Migration, auf 2.6 stehen sie im Upgrade Guide.
Für uns ist der zweite Punkt Alltag. Wir erzeugen die Headerbilder unserer KI Content Marketing Seiten mit KI und pflegen die Kennzeichnung sonst außerhalb des Systems. Zusammen mit den Funktionen aus Sulu.ai wandert damit ein weiterer Schritt der Redaktionsarbeit zurück ins CMS.
Sulu 2.6.27 und 3.0.10: Was das Update bringt
Am 1. Oktober 2026 hat das Sulu Team zwei Patch Releases veröffentlicht: 2.6.27 für den Long Term Support Zweig und 3.0.10 für die aktuelle Linie. Große neue Features sind es nicht. Aber die Änderungen merkt man im Betrieb sofort, und einige brauchen nach dem Upgrade einen Handgriff.
Geführtes Setup für Pflicht 2FA. Sulu kann Zwei Faktor für alle Nutzer erzwingen, die auf ein Muster passen. Bisher bekamen sie automatisch die Mail Methode. Mit der neuen Option setup wählen sie selbst. Direkt nach dem Login erscheint ein Overlay, das sich nicht schließen lässt und durch die Einrichtung führt. Wichtig für Integrationen: Bis das Setup fertig ist, lehnt die Admin API alle anderen Requests ab, auch die von technischen API Usern.
# config/packages/sulu_security.yaml
sulu_security:
two_factor:
force:
enabled: true
pattern: '(.+)'
setup: true
Schnelleres Publishing. Beim Veröffentlichen räumt Sulu die alten Referenzen einer Seite auf. Für diese Abfrage fehlte ein Datenbank Index. Nach einer Content Migration mit vielen Referenzen hieß das: Jeder Publish lief über die ganze Tabelle. Beide Releases ergänzen den Index.
Referenzen für Seiten und Teaser Auswahl. Page und Teaser Selections haben bisher nicht gespeichert, auf welche Seiten sie zeigen. Wurde eine geteaserte Seite neu veröffentlicht, bekam die teasernde Seite davon nichts mit. Jetzt werden diese Referenzen erfasst, allerdings erst beim nächsten Speichern oder Veröffentlichen.
HTTP Cache in Sulu 3.0.10. Änderte jemand ein Tag, eine Kategorie, einen Kontakt oder einen Account, blieben die betroffenen Seiten im Cache, bis ihre Lebensdauer ablief. Die Cache Tags beim Ausliefern und beim Invalidieren passten nicht zusammen. Das ist behoben. Außerdem bekommen jetzt mehr Inhalte Tags: Teaser, Links auf Medien, Smart Content, Image Maps und Snippet Areas.
Barrierefreiheit im Editor. Redakteure können im Rich Text Editor die Sprache einzelner Textteile auszeichnen. Screenreader sprechen fremdsprachige Passagen dann korrekt aus. Das deckt die Anforderung Sprache von Teilen aus den WCAG 2.2 auf Stufe AA ab. Neu ist auch: Pflichtfelder wie Text Editor oder Farbe lehnen leere Werte ab. Bestehende Inhalte mit leerem Pflichtfeld lassen sich erst wieder speichern, wenn das Feld gefüllt ist.
Upgrade Checkliste für Sulu 3.0.10 und 2.6.27
Es ist ein Patch Release, trotzdem gehören vier Schritte nach dem Update in eure Deployment Pipeline:
- Datenbank Schema aktualisieren, damit der neue Index für Referenzen angelegt wird.
- Referenzen neu aufbauen mit sulu:reference:refresh, sonst fehlen sie für bestehende Inhalte.
- HTTP Cache einmal leeren (nur 3.0.10), weil vorher gecachte Seiten die neuen Tags nicht tragen.
- Rollen prüfen. In 3.0.10 brauchen Anlegen und Kopieren die add Berechtigung, Veröffentlichen, Zurückziehen und Draft Entfernen die live Berechtigung. In 2.6.27 braucht das Kopieren von Seiten und Snippets die add Berechtigung.
bin/adminconsole sulu:reference:refresh
Wer eigene Cache Tags setzt oder Teaser Provider erweitert, muss zusätzlich Code anpassen. Die Details stehen in UPGRADE-3.x.md und UPGRADE-2.x.md im Sulu Repository. Genau solche Stellen fangen wir mit PHPStan und PHPUnit ab, bevor ein Update live geht.
Als Nächstes kündigt das Sulu Team Version 3.1 an, unter anderem mit Workflow Transition Requests und Benachrichtigungen bei Content Events.
the most widely used Sulu bundles are now compatible with the new content architecture
Sulu in der NCA Praxis
Jedes unserer Sulu Projekte startet mit einer sauberen DDEV Umgebung, die exakt die Produktionskonfiguration abbildet. Qualität sichern wir mit PHPUnit, statischer Analyse über Psalm und automatisiertem Refactoring mit Rector PHP. So bleiben auch größere Sulu Upgrades wie der Sprung auf 3.0 kontrollierbar.
Rund um KI betreiben wir einen eigenen Sulu CMS MCP Server. Wie wir dort den Token Verbrauch um rund 90 Prozent gesenkt haben, steht im Beitrag Weniger Tokens brauchen. Für KI gestützte Symfony Entwicklung nutzen wir zusätzlich Symfony AI Mate, und die nativen KI Funktionen des CMS beschreiben wir im Artikel zu Sulu.ai.
NCA und Sulu: Erfahrung, alle Bundles und AI Features
Sulu ist bei uns kein Nebenschauplatz. Wir betreiben unsere eigene Plattform seit Jahren produktiv auf Sulu und kennen das System von der Content Architektur bis ins Deployment. In Projekten setzen wir alle sechs hier beschriebenen Bundles ein: Form, Headless, Community, Redirect, Automation und Comment. Diese Breite heißt, dass wir nicht nur einzelne Bausteine kennen, sondern ihr Zusammenspiel im echten Betrieb.
Darüber hinaus erweitern wir Sulu um AI Features über einen eigenen MCP Server, der das CMS für KI Agenten ansprechbar macht. Genau dieser Server pflegt und baut Inhalte wie diese Glossarseiten. Wie wir dabei den Token Verbrauch drastisch senken, steht im Beitrag Weniger Tokens brauchen. Welche nativen KI Funktionen Sulu selbst mitbringt, zeigen wir unter Sulu.ai.
Für Teams, die Sulu einführen, ausbauen oder um AI erweitern wollen, bündeln wir diese Erfahrung im PHP Consulting und in der Sulu CMS PHP Schulung. Ob Fullstack oder Headless, ob klassisches Publishing oder KI gestützte Redaktion: Wir haben die Kombination im Griff.
Wir sind Experten für PHP und helfen Ihnen, Ihre digitalen Herausforderungen zu meistern. Unser erfahrenes Team unterstützt Sie bei PHP Updates, PHP Refactoring und berät Sie remote zu allen Fragen rund um PHP. Mit unseren vollautomatischen CI/CD Deployments und einer robusten Docker-Infrastruktur bringen wir Ihre PHP-Projekte auf das nächste Level. Vertrauen Sie auf unsere Expertise für zuverlässige und skalierbare PHP-Lösungen.
Häufige Fragen zu Sulu CMS
Die wichtigsten Fragen zu Sulu, der neuen Content Architektur in 3.0 und dem Upgrade bestehender Projekte.
Sulu ist ein Open Source Content Management System auf Basis des Symfony Frameworks. Es kombiniert eine entwicklerfreundliche Symfony Architektur mit einer aufgeräumten Redaktionsoberfläche und lässt sich als Fullstack CMS oder als Headless Backend mit JSON API betreiben. Sulu steht unter MIT Lizenz und wird von der Sulu GmbH gepflegt.
Sulu 3.0 baut die Content Architektur um. Die PHPCR Speicherung weicht Doctrine ORM, der Document Manager einem dimensionsbasierten Content Modell und MassiveSearch der SEAL Suchabstraktion. Für PHP Teams bedeutet das vertraute Doctrine Werkzeuge statt einer eigenen Speicherwelt. Das Ziel war, so nah wie möglich am Verhalten von 2.6 zu bleiben.
Sechs Ökosystem Bundles sind stabil auf 3.0 verfügbar: Form, Headless, Community, Redirect, Automation und Comment. Damit sind die meistgenutzten Sulu Bundles mit der neuen Content Architektur kompatibel. Seit Oktober 2026 erlauben alle sechs auch Symfony 8. Jedes Bundle bringt einen eigenen Upgrade Guide mit, in dem die verbliebenen Breaking Changes dokumentiert sind.
Der Aufwand hängt vom Projekt ab. Ein erklärtes Ziel der Releases war, nah am Verhalten von 2.6 zu bleiben, sodass viele Projekte mit minimalen Änderungen aktualisieren. Einige Breaking Changes bleiben, etwa geänderte API Felder im Headless Bundle. Der jeweilige Upgrade Guide listet alle betroffenen Stellen auf.
Ja. Sulu 2.6 ist der Long Term Support Zweig und bekommt weiter Patch Releases, zuletzt 2.6.27 im Oktober 2026 mit geführtem 2FA Setup und schnellerem Publishing. Jedes Bundle pflegt zusätzlich eine eigene 2.x Linie mit Symfony 7 Support. Projekte auf 2.6 sind also nicht unter Zeitdruck.
Vier Schritte: das Datenbank Schema aktualisieren, damit der neue Index für Referenzen entsteht, einmal sulu:reference:refresh ausführen, den HTTP Cache leeren und die Rollen prüfen. Anlegen und Kopieren brauchen jetzt die add Berechtigung, Veröffentlichen und Zurückziehen die live Berechtigung. Wer eigene Cache Tags oder Teaser Provider nutzt, passt zusätzlich seinen Code an.
Die PHPCR Speicherung war eine eigene Content Repository Welt mit hoher Einstiegshürde. Mit Doctrine ORM liegen Inhalte in relationalen Tabellen, die sich mit vertrauten Werkzeugen migrieren, indexieren und debuggen lassen. Für die meisten PHP und Symfony Teams senkt das die Komplexität deutlich und macht Sulu leichter wartbar.
SEAL ist eine Suchabstraktion, die verschiedene Suchbackends hinter einer einheitlichen API kapselt. Sulu 3.0 nutzt SEAL anstelle von MassiveSearch. Betroffen ist vor allem das Headless Bundle, dessen Suchendpunkt komplett auf SEAL umgestellt wurde. Der indices Parameter heißt jetzt index und Treffer kommen als flache Liste zurück.
Ja. Mit dem Sulu Headless Bundle liefert das CMS Content als reines JSON über eine API aus. Dein Frontend, etwa eine React, Vue oder Astro Anwendung, rendert die Daten selbst. So verbindest du ein bewährtes PHP CMS mit modernen JavaScript Frontends und behältst die volle Redaktionsoberfläche von Sulu.
Sulu passt zu Teams mit Symfony Expertise, die ein flexibles CMS für mehrsprachige Websites, Multiportal Setups oder Headless Szenarien brauchen. Redakteure profitieren von Live Preview und guter Medienverwaltung, Entwickler von sauberer Symfony Architektur. Für reine Content Websites ohne Sonderanforderungen ist klassisches Sulu mit Twig Templates oft die effizienteste Lösung.
Da Sulu 3.0 auf Doctrine ORM setzt, laufen Inhalte über die von Doctrine unterstützten Datenbanken. In der Praxis sind das vor allem MySQL beziehungsweise MariaDB und PostgreSQL. Die Wahl richtet sich nach eurer bestehenden Infrastruktur und den Anforderungen des Projekts.
Ja. Wir betreiben unsere eigene Plattform auf Sulu und begleiten Teams beim Upgrade von 2.6 auf 3.0, beim Refactoring gewachsener Codebases und beim Aufbau einer CI/CD Pipeline mit Tests als Sicherheitsnetz. Im kostenlosen Kennenlernen schätzen wir den Aufwand ein und rechnen anschließend minutengenau ab.
Wir arbeiten mit transparenter Minuten Abrechnung statt Pauschalen. Zuerst lernen wir uns in einem kostenlosen Gespräch kennen, schätzen den Aufwand für dein Vorhaben und rechnen anschließend minutengenau ab. So zahlst du nur die tatsächlich geleistete Arbeit und behältst die Kosten jederzeit im Blick.
Ja. Neben der Zustellung per Mail gibt es TOTP mit einer Authenticator App, auch im Long Term Support Zweig 2.6. Seit 2.6.27 und 3.0.10 lässt sich 2FA außerdem für alle Nutzer erzwingen, die dann nach dem Login geführt eine Methode einrichten. Bis das Setup fertig ist, lehnt die Admin API alle anderen Requests ab, auch die von technischen API Usern.
Über das Herkunftsfeld an jeder Dateiversion. Es kennt vier Werte: menschlich erstellt, KI generiert, KI bearbeitet und unbekannt. Bei den beiden KI Werten erscheint ein Abschnitt für Hinweistext und Label Icon, mit dem sich die Transparenzpflicht des EU AI Act direkt im CMS abbilden lässt. Bestehende Medien starten auf unbekannt und werden nachgepflegt.