TYPO3 als Plattform
Wieso bietet gerade TYPO3 die richtigen Vorraussetzungen für die Entwicklung moderner, performanter Corporate Websites und gleichzeitig die Bordmittel um komplexere, integrative Webprojekte umzusetzen?
Abgrenzung Framework / Plattform
In Abgrenzung zu anderen Systemen (z.B. Wordpress) wurde TYPO3 bereits initial mit dem Anspruch entwickelt als Werkzeugkasten / Framework für jede mögliche Konstellation einer Website / mehrerer Websites zu funktionieren.
So ist die Basis, auf der aufgebaut werden kann, wesentlich breiter, und unterstützt bereits nativ alle Anforderungen die an komplexere Webprojekte / Websites heute gestellt werden (z.B. Mehrsprachigkeit, Dateiverwaltung, Kategorisierung, redaktionelle Workflows, Zugriff, etc). Im Vergleich dazu merkt man Systemen wie Wordpress meist an, dass diese initial für einen wesentlich reduzierteren Use-Case entwickelt wurden (im Falle von Wordpress zum Beispiel der des Web-Blogs). Zusätzliche Funktionen müssen im Rahmen von Add-Ons / Extensions hinzugefügt werden, die Interoperabilität zwischen Add-Ons / Extensions ist dabei nicht zentral koordiniert. In der Folge ist ein organisches, nachhaltiges Wachstum mit einer solchen Lösung als Basis nur schwer, oder aber sehr teuer, möglich.
Damit steigt im Falle von TYPO3 die initiale Lernkurve (es gibt einfach mehr zu lernen), dafür wird durch eine kontrollierbare, zentral entwickelte Basis der langfristige Support, und die langfristige Weiterentwicklung ermöglicht.
Historie / Rückblick
Seit dem Upgrade von TYPO3 in Version 6.2 LTS auf TYPO3 in Version 7.6 LTS gibt es in der Kern-Entwicklergemeinde von TYPO3 einen Konsens sich auf die Konsolidierung des Kern-CMS (Core) zu konzentrieren.
Das beinhaltet zum Beispiel die Umstellung auf in der PHP-Community etablierte Qualitätsstandards / Best Practices (zu nennen sind hier vor allem PSRs / PHP-FIG: https://www.php-fig.org/psr/) so wie die Nutzung von Standard-Frameworks für unterliegende Basis-Funktionalität (vor allem zu nennen Symfony: https://symfony.com/projects/typo3).
Diese grundsätzlichen Herangehensweisen werden flankiert durch gezielte Verbesserungen des Status Quo. Ein paar ausgewählte Neuerungen der letzten Major-Releases:
- 7.6 LTS (10.11.2015): Backend-UX stark überarbeitet, viele Refactorings im Hintergrund, Umstellung auf weitere Teile von Symfony, Einführung von Fluid-Templating in den TYPO3-Kern
- 8.7 LTS (04.04.2017): Umstellung auf Doctrine / Symfony für Datenbankverbindungen, besserer RTE für Redakteure, PHP >7.1-Kompatibilität, stark verbesserte Performance
- 9.5 LTS (02.10.2018): Natives SEO-Handling im Backend / sprechende URLs im CMS-Kern, bessere und einfachere Verwaltung von Multisites, weitere Aufräumarbeiten und Refactorings am TYPO3-Kern
Es wurden also in den letzten Jahren gezielt die Stärken identifiziert die TYPO3 bereits besitzt, um diese auf möglichst stabile Beine zu stellen.
Ein auf diese Weise entwickelter CMS-Kern unterstützt damit gerade ein gesundes Ökosystem an Erweiterungen.
Mit TYPO3 9.5 wurde zusätzlich erstmalig ein wichtiger Schritt in Richtung einer breiteren Weiterentwicklung des CMS TYPO3 etabliert: TYPO3 Initiativen.
TYPO3 Initiativen koordinieren mehrere interessierte Parteien (Einzelpersonen, Entwickler, Firmen) die für einen bestimmten Bereich in TYPO3 langfristige Lösungen entwickeln, und entsprechend strategisch bei der Entwicklung des CMS-Kerns berücksichtigt werden können. Zusätzlich wird damit die Entwicklung von (wichtigen) Features von der Entwicklung am CMS-Kern, und dessen Release-Kadenz, entkoppelt. Erreicht eine Initiative entsprechende Stabilität, so werden die entwickelten Features in den CMS-Kern übernommen.
Ankündigung zu TYPO3 Initiativen: https://typo3.org/article/introducing-strategic-typo3-development-initiatives/
Seite zu TYPO3 Initiativen: https://typo3.org/community/teams/typo3-development/start-an-initiative/
Übersicht über aktuelle Initiativen: https://typo3.org/community/teams/typo3-development/initiatives/
Weiterentwicklung
Die Entwicklung am Content Management System wird grundsätzlich über Hauptversionen vorangetrieben. So gibt es alle 1 1/2 Jahre eine neue Hauptversion von TYPO3, welche neue Features einführt, und im Zweifel nicht komplett abwärts-kompatibel ist. Diese bekommt dann für 1 1/2 Jahre reguläre Maintenance-Releases, und für weitere 1 1/2 Jahre Bugfix- und Security-Releases.
Jede Hauptversionen wird damit für 3 Jahre unterstützt, womit das Fenster (1,5 Jahre) für Upgrades bei neuen Hauptversions-Releases jeweils für die gesamte Maintenance-Release Periode des neuen LTS-Releases offen bleibt.
Bei einem Release von TYPO3 10.4 LTS hat man zum Beispiel damit, bei einem neu auf TYPO3 9.5 aufgesetzten System, Zeit für das Upgrade bis der neue Release (in diesem Fall TYPO3 10.4 LTS) in die aktive Support-Phase übergeht, also 1 1/2 Jahre ab Release der neuen Hauptversion.
Damit wird der Upgrade-Prozess kalkulier- und planbar. Zusätzlich wird so der Entwickler-Community genügend Zeit gegeben, bestehende Extensions auf die neue Hauptversion anzupassen, und damit das TYPO3-Ökosystem als Ganzes zu stabilisieren.
Die Roadmap zur geplanten Entwicklung findet sicher hier: https://typo3.org/cms/roadmap/
Zusätzlich zum regulären Support (3 Jahre pro Hauptversion / LTS-Release) gibt es noch den Extended Long Term Support (ELTS) der als kommerzieller Service durch die TYPO3 GmbH angeboten wird, und Bugfixes und Security Patches für weitere 3 Jahre zur Verfügung stellt. Informationen zum Programm gibt es hier: https://typo3.com/products/extended-support
Der nächste LTS-Release, und damit die neue Hauptversion 10 für TYPO3, wird am 07.04.2020 erscheinen. Dieser konzentriert sich erneut auf weitere Qualitätsverbesserungen und die fortschreitender Konsolidierung des CMS-Kerns:
https://typo3.org/article/x-marks-the-spot-typo3-v100-is-here/
https://typo3.org/article/typo3-version-101-on-the-high-seas/
Interessante Initiativen
Neben der Koordinierung der langfristigen Entwicklung mit dem Kernentwickler-Team versuchen Initiativen bereits möglichst frühzeitig einsetzbare Versionen von Extensions / Änderungen zu veröffentlichen.
Diese sind dann entweder in der Funktion reduziert, bis entsprechende Schnittstellen / Basisfeatures im TYPO3-Kern umgesetzt werden konnten, oder bauen diese Funktionen prototypisch im Rahmen der Initiative, mit dem Potential, dass der auf diese Weise entwickelte Code später in den Kern übernommen wird.
Einige aktuell laufende, interessante Initiativen:
- Structured Content Initiative: https://typo3.org/community/teams/typo3-development/initiatives/structured-content/
Hat sich zum Ziel gesetzt die Art auf die Redakteure mit strukturiertem Inhalt arbeiten weiter zu modernisieren - Dashboard Initiative: https://typo3.org/community/teams/typo3-development/initiatives/typo3-dashboard-initiative/
Arbeiten an einem Modul um in TYPO3 zentral Informationen in einem Dashboard zusammenzutragen, und dem Redakteur immer ein aktuelles Bild über den Satus seiner Website / seines Systems zu bieten. Eine erste Version (https://packagist.org/packages/friendsoftypo3/dashboard) ist als Extension bereits in TYPO3 9.5 LTS nutzbar - Progressive Web Apps Initiative: https://typo3.org/community/teams/typo3-development/initiatives/pwa/
Soll TYPO3 um Möglichkeiten zur Ausgabe strukturierter Daten (JSON / REST), anstatt fertig gerendertem HTML, erweitern. Damit wird TYPO3 (zusätzlich) zu einem headless CMS. Dies ermöglicht perspektivisch Progressive Web Apps, Web Components und native Apps auf Basis der zentral in TYPO3 gepflegten Daten. Erste bereits in TYPO3 9.5 LTS nutzbare Ansätze wurden bereits als Extension veröffentlicht: https://packagist.org/packages/friendsoftypo3/headless - SEO Initiative: https://typo3.org/community/teams/typo3-development/initiatives/typo3-seo-initiative/
Hat als Ziel Redakteure beim Erstellen von Inhalten auch im Bereich der Suchmaschinen-Optimierung / -Berücksichtigung, durch Verankerung im Kern des CMS, maximal zu unterstützen. Erste Bestrebungen wurden bereits im Rahmen von TYPO3 9.5 LTS realisiert, weitere folgen mit dem Release von TYPO3 10.4 LTS - Form Framework Initiative: https://typo3.org/community/teams/typo3-development/initiatives/form-initiative/
Redakteure sollten Formulare direkt über das Backend selber erstellen und pflegen können. Die Auswahl von Feldern, Validationen und weiteren Informationen ist dabei über ein einfach zu bedienendes Backendkonzept im Backend sichergestellt. Die Ergebnisse lassen sich seit TYPO3 9.5 LTS bereits im Backend verwenden. Weitere Verbesserungen folgen in den kommenden Hauptversionen - Frontend Editing Initiative: https://typo3.org/community/teams/typo3-development/initiatives/typo3-frontend-editing-initiative/
Ermöglicht die Bearbeitung von Inhalten direkt über das Frontend, insofern man als Redakteur / Admin der Seite eingelogged ist - Accessibility Initiative: https://typo3.org/community/teams/typo3-development/initiatives/typo3-accessibility-initiative/
Die Verbesserung von TYPO3 im Backend selbst, als auch die Verbesserung der Werkzeuge die Entwicklern an die Hand gegeben werden, um zugängliche Websites zu realisieren
Vergangene, interessante Initiativen:
- GDPR Initiative: https://typo3.org/community/teams/typo3-development/initiatives/gdpr/
Hat Kompatibilität zur GDPR im realisiert (mittelfristiges Ziel einer Extension wurde mit https://packagist.org/packages/georgringer/gdpr erreicht), mit dem Ziel diese noch tiefer in TYPO3 zu verankern - PSR-15 / PSR-7 MIddlewares: https://typo3.org/community/teams/typo3-development/initiatives/initiative-psr-15/
Baut Hintergrundfunktionen, auf die alle TYPO3-Entwickler zurückgreifen, entsprechend um, um zukünftig beliebige Middlewares (auch welche die nicht originär für TYPO3 entwickelt wurden) einsetzen zu können
Konzepte im CMS-Kern / Plattformgedanke
Neben vielen zukünftigen Entwicklungen und Initiativen kann TYPO3 aber auch auf eine Reihe bestehende Stärken im CMS-Kern verweisen, wenn es um die Umsetzung komplexerer Websites / Portale geht:
- File Abstraction Layer / FAL: In der Basiskonfiguration kommt TYPO3 mit pro Benutzergruppe konfigurierbaren Server-Ordnern um Daten (Bilder, Dokumente, etc) hochzuladen und zu verwalten. Diese Ordner können, ermöglicht durch den File Abstraction Layer, aber auch aus beliebigen dritten Quellen stammen, so lange diese an das FAL angebunden sind / werden können. Im Zweifel kann diese Anbindung aber aufgrund klar definierter Schnittstellen verhältnismässig effizient umgesetzt werden.
Ermöglicht: Anbindung externen Bild-Datenbanken, Anbindung von Firmen-weiten Server-Shares / Fileservern, zentrale Kontrolle über verwendbare, bzw. im Einsatz befindliche, Bilder - Kategorisierung / Taxonomien: Kategorien sind als eines der Kern-Konzepte / -Modelle sehr tief in TYPO3 eingebaut, und werden in allen Inhalten / Extensions übergreifend verwendet. Damit ergeben sich Möglichkeiten zur Klassifizierung von Inhalten über einen, spezifischen Inhaltstypen hinweg
Ermöglicht: Ausspielen ähnlicher Inhalte auf Basis einer Taxonomie, Listings auf Basis von Kategorien, Facettierung von Suchergebnissen auf Basis der Taxonomie - Multi Instance: In einem TYPO3-Backend können beliebig viele Seiten / Seitenbäume / Instanzen einer, oder mehrerer, Seiten gepflegt werden.
Ermöglicht: Das Instanz-übergreifende Arbeiten von Redakteuren, ohne das jeder Redakteur jeweils alles sehen kann oder muss. Daten können, konfigurierbar, zwischen solchen Instanzen bewusst entweder geteilt oder alternativ jeweils einzeln gepflegt genutzt werden - Multi-Language: Mehrsprachigkeit und Übersetzungsworkflows sind tief im Kern verankert, entsprechend greifen diese Konzepte auch in allen zusätzlichen Entwicklungen (insofern die TYPO3 Best Practices berücksichtigt werden) automatisch. Sowohl im Backend als auch im Frontend. Ermöglicht: Redakteuren ein einheitliches Interface zur Pflege von Inhalten, unabhängig ihrer Quelle (Core-Elemente, Extensions, individueller Code). Zusätzlich können auf dieser etablierten Schnittstelle automatisierte Übersetzungsworkflows angebunden werden (z.B.: https://packagist.org/packages/localizationteam/l10nmgr, oder: https://www.languagewire.com/en/technology/typo3-connector)
- Extbase / Fluid: Durch diese beiden Frameworks (Extbase: Model-View-Controller Framework für die Backend-Entwicklung, Fluid: Templating-Sprache für die Frontend-Entwicklung) wird ein gemeinsamer Nenner für Strukturierung und Umgang mit Daten / Objekten (Seiten, Inhaltselemente, News, Events, etc) geschaffen.
Ermöglicht: Interoperabilität mit Extensions Dritter, Zukunftssicherheit bei der Entwicklung eigener Funktionalität, so wie einfache Möglichkeiten beliebige Daten dritter Systeme in TYPO3 abzubilden und zu importieren - Database Abstraction Layer / DBAL / Doctrine: Standardisierter Zugriff auf Datenbank-Funktionen und -Daten. Im Kern wird hier auf Doctrine von Symfony gesetzt
Ermöglicht: Betrieb von TYPO3 auf allen zu Doctrine kompatiblen Datenbanksystemen (MySQL, MariaDB, PostgreSQL, SQLServer, etc), Einsatz von generischem Tooling, welches für Doctrine, aber nicht spezifisch TYPO3, entwickelt wurde - TypoScript / integrativer Konfigurationslayer: Neben dem Bearbeiten von Inhalten durch Redakteure, und dem Entwickeln von Features / Extensions durch Entwickler, gibt es in TYPO3 mit dem Integrator eine dritte Ebene der Arbeit mit dem System. Einfache Konfigurationen können bereits durch einen Integrator erledigt werden, ohne das dedizierte Backend-Entwicklungsleistung benötigt wird.
Ermöglicht: Entzerrung von Entwicklungsprozessen, Abbilden von häufigen Workflows auf eine kostengünstigere Weise
Die breite Basis an Best Practices, vorgegebenen Herangehensweisen und Konzepten im TYPO3-Kern sorgt, bei Befolgung, automatisch dafür das Extensions untereinander kompatibel und zukunftssicher bleiben. Zusätzlich wird so ein "Vendor Lock-In" vermieden, der einen Webseiten-Betreiber fest an einen umsetzenden Partner bindet.
Standards
Neben einer Vielzahl von Standards die TYPO3 im Kern selbst verwendet und realisiert, ist auch eine Standardisierung von Arbeitsprozessen im System für Redakteure, Integratoren, Entwickler und Berater als Vorteil zu nennen.
So können diese drei Haupt-Benutzergruppen von TYPO3 auf zentrales, unabhängiges Informationsmaterial (Anleitungen, Schulungen, etc) zurückgreifen, und haben zusätzlich die Möglichkeit ihr Wissen im Rahmen von Zertifizierungen zu formalisieren: https://typo3.org/certification/
Performance
TYPO3 ist aus Performance-Sicht "Best in Class" unter den Content Management Systemen: https://typo3.com/blog/typo3-delivers-great-performance
Werden die oben genannten Best Practices durch die umsetzenden Entwickler korrekt berücksichtigt, so profitieren diese automatisch von der guten Performance.
Unser Fazit
Durch die Entwicklung der letzten Jahre, der gemachten Erfahrungen und den entsprechend gezogenen Konsequenzen, wie einer regelmässigen Release-Kadenz und Initiativen, hat sich TYPO3 eine sehr komfortable Ausgangslage erarbeitet. Zukünftige Entwicklungen passieren fokussiert und mit Augenmass.
Alles in allem bietet TYPO3 alle Werkzeuge um für Seiten beliebiger Größe als zentrale Plattform zum Aggregieren und Pflegen / Anreichern von Inhalten durch redaktionelle und automatisierte Workflows zu dienen.
Damit ist eine einheitliche User Experience (UX) über alle Inhalte hinweg möglich, statt zum Beispiel Inhalte / Daten und UX fragmentiert über eine Vielzahl unterschiedlicher Systeme zu verteilen (z.B. Hybris-Shop für Shop- / PIM-Funktionalität, Drupal für Inhaltspflege, weitere Backendsysteme zum Pflegen strukturierter Daten).
Zusätzlich kann auf diese Weise, neben einer besseren SEO-Performance (alle Daten werden über eine einheitliche Domain ausgeliefert), für alle Inhalte von der exzellenten Performance von TYPO3 profitiert werden, unabhängig davon ob anhängige Drittsysteme die Performance selbst einhalten können.