Contao-News

Wir informieren Dich hier regelmäßig zu Updates, stellen Best-Practice-Arbeiten vor und berichten über Aktuelles aus dem Contaoversum.

Contao 5.0 ist da!

von Marcus Lelle – Aktuelles

Nummer 5 lebt!

Es ist so weit: Eine neue Major-Version von Contao ist da! Gut sieben Jahre nach dem großen Schritt auf Contao 4, geht Contao mit der neuen Version 5.0 weiter seinen Weg. Wer nicht genau weiß, wie die Nummerierung der Contao-Versionen erfolgt, kann sich hier einlesen.

Es gibt bei so einem Schritt immer grob zwei Lager. Menschen, denen neue Features gar nicht schnell genug kommen können, und Menschen, die sich an Neues nur langsam herantrauen und lieber alles so hätten "wie früher". Auf beide Seiten gehe ich in dieser News ein.

Die Ausgangslage: Contao 4.13

In jeder neuen Version der 4er-Reihe (von 4.1 bis 4.13) sind tolle neue Features zu unserem Lieblings-CMS dazugekommen. Weil das Core-Team darauf achtet, dass die Features in jeder neuen Version mit allen Versionen seit 4.0 kompatibel bleiben, sammeln sich mit jedem Release neue "Backwards-Compatibility-Layer" an. Also Ebenen an Code, welche die alten Schnittstellen mit den neuen Schnittstellen kompatibel halten, damit der alte Code weiterhin funktioniert.

Diese "BC-Layer" machen das Contao-Schiff schwerer.

Damit das Schiff nun bereit für viele neue Fracht (= Funktionen) ist, haben das Core-Team und alle anderen freiwilligen Helfer mit beispiellosem Arbeitsaufwand ausgemistet und sehr vieles, was in Contao 4 als deprecated gekennzeichnet war, in Contao 5.0 entfernt.

Über 3.500 angepasste Dateien und knapp 400.000 angepasste Code-Zeilen sprechen eine deutliche Sprache. Contao wurde dabei von etwa 70.000 Zeilen Altlasten im Code befreit.

Neues für Anwender

Obwohl der Fokus auf dem Bereinigen lag, gibt es in Contao 5 auch neue Funktionen und Verbesserungen. Hier ein paar davon:

Vereinheitlichung der Benutzerführung für Kind-Elemente

Alte Contao-Hasen werden sicherlich erstmal stolpern, aber an Stellen, an denen es vorher nicht so war, führt jetzt der Stift zum Bearbeiten des Elements und nicht mehr eine Ebene tiefer. Dafür wurde ein neues Icon "Kind-Elemente" eingeführt. Beispielhaft sei hier das Artikel-Element genannt.

Seiten und Dateien wandern unter "Inhalte"

Die Links zur Seitenstruktur und zur Dateiverwaltung sind in Contao 5 in der Menügruppe "Inhalte" zu finden.

Kein Speichern fehlerhafter Formulare mehr

Stellt Contao 5 beim Absenden eines Formulars im Backend einen Fehler fest, z. B. dass nicht alle Pflichtfelder ausgefüllt wurden, werden die Eingaben nicht gespeichert. Auch nicht teilweise, so wie noch in Contao 4.

Ungespeicherte Elemente

Neue Elemente, die noch nicht gespeichert wurden, sind zukünftig im Backend sichtbar und werden ausgegraut dargestellt.

Neues Element "Ungefiltertes HTML"

Dieses Element ermöglicht es, schnell Elemente wie Script-Tags oder z. B. Inline-SVG-Code einzufügen, ohne in den Sicherheitseinstellungen alle Elemente freizugeben. Aber bitte denke dran: Sei vorsichtig, wenn du Dinge einfügst, die du nicht verstehst! Dies könnte Angreifern ermöglichen, deine Identität zu stehlen oder die Kontrolle über das gesamte System zu übernehmen. Und so steht es auch direkt unter dem Element.

Inhaltselemente basieren jetzt auf Twig-Templates

Alle Inhaltselemente wurden neu geschrieben und basieren jetzt auf Twig-Templates. Auf die neuen Möglichkeiten mit Twig-Templates gehen wir in einem zukünftigen News-Beitrag detaillierter ein. Im Handbuch gibt es schon jetzt ein eigenes Kapitel dazu.

Das Contao-Installtool wurde entfernt

Die meisten Funktionen findest du im Contao Manager (siehe weiter unten). SQL-Dumps von Themes können jetzt direkt im Backend importiert werden.

Anpassungen am Contao Manager

Wie oben bereits erwähnt, gibt es das alte Contao-Installtool nicht mehr. Um bei der Installation eine Datenbank auszuwählen, ist dieser Schritt jetzt in den Contao Manager gewandert. Auch einen Admin legst du dort wie gewohnt an.

Muss ich schon Contao 5.0 nutzen?

Nein! Die aktuelle Contao LTS-Version 4.13 wurde im Februar 2022 veröffentlicht und wird noch bis Februar 2025 mit Updates versorgt. Aber du musst auch keine Angst haben, dass in Contao 5 auf einmal alles anders ist. Die Änderungen sind logisch und werden es für neue Anwender noch einfacher machen.

Neues für Entwickler

  • Contao 5 nutzt die Security-Komponente von Symfony 6. Erweiterungen, die die Authentifizierung beeinflussen, müssen vermutlich angepasst werden.
  • Es wurden Security-Voter für DCA-Operationen hinzugefügt, die auf lange Sicht die bestehenden checkPermission()-Callbacks ablösen sollen. Das bisherige System funktioniert in Contao 5 weiterhin, aber es schadet nicht, sich mit dem neuen System frühzeitig vertraut zu machen.
  • Models geben jetzt echte PHP-Types wie z. B. integer oder boolean zurück, wenn das Datenbank-Feld entsprechend definiert ist.
  • Länder-Codes sind jetzt in Großbuchstaben.

Es wurden für alle Änderungen Deprecations in Contao 4.13 eingebaut, also wenn eine Erweiterung unter Contao 4.13 keine Deprecations mehr triggert, sollte sie unter Contao 5 laufen.

Grundsätzlich ist es so, dass alle Entwickler ihre Erweiterungen nach eingesetzten BC-Layern durchsuchen können. Die wichtigsten Informationen dazu finden sich in der DEPRECATED.md im jeweiligen Entwicklungszweig und werden auch im Symfony-Profiler unter "Logs" im Tab "Deprecations" aufgelistet.

Welche Anpassungen für Contao 5 nötig sein werden, sind in der dafür zuständigen UPGRADE.md dokumentiert, die sich im Entwicklungszweig von Contao 5 befindet.

Ausserdem ist es bestimmt auch nicht verkehrt, den Entwicklungen im Monorepo zu folgen.

Was sonst noch wichtig ist

Ich empfehle dir auf jeden Fall den Bericht von Yanick vom Entwickler-Treffen im Februar 2022.

Bitte denke daran, dass du viele Möglichkeiten hast, Contao zu supporten. Jede Unterstützung ist wichtig. Nur so kann Contao langfristig weiterentwickelt werden. Auch die zahlreichen Erweiterungen sind nicht selbstverständlich. Alle freuen sich über kleine Aufmerksamkeiten und neue Aufträge.

Vielen Dank an alle Core-Entwickler. Bei Leo, Yanick, Andy, Franko und Christian möchte ich mich für die Unterstützung beim Schreiben dieser News bedanken.

Contao rocks!

Marcus

Alle News anzeigen

Kommentare

Kommentar von Detlef |

Wwoooowww,
Dank und Respekt an alle für die tolle Arbeit und das jetzt wieder ein Stück grossartigere CMS!

Kommentar von cubex |

Ich freue mich wie ein Honigkuchenpferd :)

Kommentar von Ralph |

Tausend mal Danke an alle Beteiligten! Contao rocks!

Kommentar von Ralf |

Ahhhh wie geil ist das denn, ich freu mich schon auf das Arbeiten mit der 5er Version <3

Gruß und riesen Dank

Kommentar von Werner Graser |

So genial!
Respekt und 1.000 Dank an alle Entwickler!

Kommentar von Erik Herbert |

Megageil! Vielen Dank an das Team. Das wird richtig gut!

Einen Kommentar schreiben

Bitte rechnen Sie 2 plus 3.