Blog
Update auf TYPO3 6 – Einschätzung und How-To

Seit fast einem halben Jahr ist die neueste Version des TYPO3-CMS mit der Versionssprungnummer 6 nun verfügbar. Mit einem Monat Verspätung stand die Version 6.0.0 am 27.11.2012 unter Begleitung von weltweiten Releasepartys zum Download und der Nutzung bereit. Ein halbes Jahr zuvor wurde die erste Alpha-Version des Versionssprung vorgestellt.

Nun soll mit etwas Abstand und mittlerweile der Version 6.0.4 vom 7.3.2013 dieser Beitrag dazu dienen, abzuschätzen, was die neue Version im Livebetrieb leistet, was die Verbesserungen bringen und ob sich ein Update vom 4er-Zweig derzeit lohnt. Alles natürlich rein subjektiv und aus den eigenen Erfahrungen heraus aufgezeichnet.

Neue Features der TYPO3-Version 6

  • File Abstraction Layer
    Mit dem FAL ist es nun möglich, ein und diesselbe physische Datei mehrfach zu nutzen. Zwar konnte man in seinem Ordnersystem die Dateien strukturieren, jedoch wurden diese bei der Zuordnung z.B. zu einem Inhaltselement jeweils als numerierte Kopie im Ordner uploads/pics abgelegt. Also z.B. bild1.jpg, bild1_01.jpg, bild1_02.jpg usw. Ab TYPO3 6 wird diese als Original im gewünschten Ordner (z.B. fileadmin/img/) gehalten und als Datenbankeintrag (Tabelle: sys_file) hinterlegt. Die Zuordnung zu den betreffenden Datensätzen erfolgt über Datenbankeinträge (Tabelle: sys_file_reference). Es können zudem auch andere Storages, wie Cloudspeicher genutzt werden.
    Eine damit einhergehende und sehnlichst erwartete Verbesserung ist die direkte Zuordnung von Bildtexten zum Bild, was vorher umständlich und unzeitgemäß über ein separates zeilengetrenntes Textfeld gelöst wurde (von der komplexeren Möglichkeit per DAM abgesehen).
  • Backend
    Das TYPO3-Backend, also der vornehmliche Ort zum Bearbeiten und Pflegen der Inhalte der Website erfreut sich u.a. folgender neuer Möglichkeiten:

    • Drag & Drop von Inhaltselementen (vorher musste dies u.a. per Klick auf entsprechende Pfeile oder durch Ausschneiden-Einfüge-Aktionen durchgeführt werden)
    • Die Sprachverwaltung des Backends wurde aus dem Extensionmanager herausgelöst und in ein eigenes Admin-Modul gelegt
    • die Backendbenutzer-Verwaltung wurde auf Extbase-Basis komplett neu entwickelt und bekam nun nützliche Filtermöglichkeiten spendiert

Weitere Verbesserungen der Version 6

Zusätzlich zu den neuen Features wurden im neuen TYPO3-Kern wieder eine Vielzahl von Aufräum- und Refactoring-Aufgaben durchgeführt. Außerdem wurde die Code-Qualität durch über 5.000 automatisierte Unit-Tests erhöht.

Der Extension-Manager wurde (mal wieder) neu geschrieben. Dieses Mal auf solider Basis mit Extbase, jedoch anfänglich noch mit etlichen Kinderkrankheiten, welche aber mittlerweile behoben sind.

Für eine tiefere Lektüre sei an das Wiki verwiesen: http://wiki.typo3.org/TYPO3_6.0

Muss eine Version 4 geupdatet werden?

Derzeit spricht – außer wenn man für das jeweilige Projekt die oben genannten neuen Features unbedingt braucht – kein dringender Grund für ein schnelles Update. Jedoch sollte dieses mit in die mittelfristige Websitestrategie einbezogen werden. Spätestens wenn der Support für die LTS-Version 4.5 abgelaufen ist und dafür keine Sicherheitsupdates mehr angeboten werden, sollte schleunigst über das Update nachgedacht werden. Dies sollte zuletzt noch bis Ende 2013, spätestens aber April 2014 der Fall sein. Wie letztens verkündet wurde, ist die Unterstützung für TYPO3 4.5 aber nun auf Oktober 2014 verlängert worden.

Bei einer neuen Website bzw. einem Relaunch kann und sollte dieser Versionsschritt hingegen bereits gegangen werden. Zum einen kann man die neue Version in Ruhe kennenlernen und baut die Website auf einem stabileren und langfristigeren Kern auf.

Es empfiehlt sich bei bei einem Update im Allgemeinen und bei einem Versionssprung im Besonderen, das Update zuvor an einem identischen Testsystem eingehend zu testen. Dies vermeidet hektische Downgrades und Fehlersuchen am Livesystem während echte Besucher mit unschönen Fehlermeldungen konfrontiert werden statt den Internetauftritt besuchen zu können. Eine sowohl für die TYPO3-Agentur als auch für das Unternehmen sicherlich blamable Situation.

Update älterer TYPO3-Versionen

Hier wird das Problem des langen Wartens relativ schnell spürbar bzw. hier zahlt sich eine regelmäßige Aufversionierung aus. Soll nun bereits 4.5.x, 4.4.x oder noch eher auf 6.x.y geupdatet werden, sollte man überlegen, nicht die Zwischenschritte dazwischen nachträglich durchzuführen und nicht den Riesensprung zu wagen. Erfahrene TYPO3-Integratoren mögen das noch als nette Challenge sehen, andere wiederum könnten an der Herausforderung und der Fehlersuche scheitern, die das Überspringen von mehreren Minor-Versionen birgt.

How-To: Install-Tool

Alle Angaben ohne Gewähr und auf eigene Verantwortung!
Wie immer leistet das TYPO3-Install-Tool wertvolle Dienste beim Update der Version. Neben den notwendigen Konvertierungen der zentralen Konfigurationsdatei localconf.php, welche nun LocalConfiguration.php heißt und in Array-Form daherkommt werden auch die nötigen Migrationen für das neue Filehandling durchgeführt. Desweiteren wird wie üblich die Datenbankstruktur angepasst (Database Analyser > Compare > Write to Database)

Noch einmal der eindringliche Hinweis: Die Vorbereitung des Versionswechsels sollte auf einem separaten Testsystem durchgeführt werden. Es wird in 99 Prozent der Fälle eine Fehlermeldung („Oops, an error occurred!“ mit dem lustigen umgedrehten TYPO3-Logo) angezeigt.

Im günstigsten Fall wird die Update-Vorbereitung – wenn man ohnehin schon einmal tief im System steckt – gleich mit einem kompletten Systemroundup oder gar einem gestandenen Relaunch durchgeführt. Das Testsystem sollte dabei die gleichen Daten und Funktionalitäten (Extensions) wie das Livesystem beinhalten um realitätsgetreu Test zu können. Je nach Komplexität und Fall genügt es dann während des eigentlichen Wechsels zu günstiger Deployment-Uhrzeit (Webstatistik befragen) eine temporäre index.html mit entsprechendem Hinweis in den Root-Ordner zu legen – oder mit geschickten Symlinks die neue Version in einem eigenen Ordner zu beherben und die Domain auf diesen Ordner zu schalten (vorab können die Tests z.B. per Sudomain erfolgen). Da dies jedoch ein komplexes und kritisches Unterfangen ist, können hierfür keine allgemeingültigen Anweisungen erteilt werden. Konrete Unterstützung kann als Dienstleistung erfragt werden.

Special Case: Extbase-Extension

In einem konkreten Fall wurde die Fehlermeldung „The template files xyz could not be loaded.“ ausgeworfen. Lösung war hier, dass die Fluid-Layout-Dateien nun mit Großbuchstaben beginnen müssen, also typo3conf/ext/EXTNAME/Resources/Private/Layouts/Detail.html statt detail.html.

Deprecated

Bei einer neuen Version fallen u.a. als deprecated eingestufte und bisher tadellos funktionierende Möglichkeiten und Konfigurationen weg. Darauf wird in der Datei typo3conf/deprecation_*.log (muss ggf. per Install-Tool im Punkt „enableDeprecationLog“ aktiviert werden) hingewiesen. Diese Datei wird meist durch ältere oder ungepflegte Extensions – aber auch überholte Typoscript-Einträge – mit Warnungen aufgebläht. Spätestens wenn die Übergangszeit vorbei ist, sollte diesen Meldungen Beachtung geschenkt werden.

Ausblick und LTS

Die LTS-Version aus dem 6er-Zweig wird TYPO3 6.2 sein, welche voraussichtlich im Herbst 2013 veröffentlicht wird. Diese wird dann wiederum bis mindestens Herbst 2016 mit Updates versorgt und auf dem Laufenden gehalten. Auf dem Weg dahin erwartet uns eine Zwischenversion 6.1, welche im Frühjahr vorgestellt wird.

Fazit

Früher oder später wird für sicherheitsbewusste und bedachte Websitebetreiber ein Update auf TYPO3 6 unumgänglich sein. Dies sollte auch nicht als Belastung, sondern als Chance und Investition in die Zukunft gesehen werden. Durch den Zyklus der LTS-Versionen erhält der Kunde Planungssicherheit und kann die anfallenden Aufwände langfristig einplanen. Zudem sollte ein regelmäßiger Support nicht zu kurz kommen um wenigstens die TYPO3-Installation mit Sicherheits-Updates und Bugfixes aktuell zu halten.

Die bereits geupdateten Systeme laufen – nach entsprechender Testphase – wie erwartet problemlos.

Eine enge Zusammenarbeit zwischen Kunde und Internetagentur ist darüber hinaus immer anzuraten – seien es um die Kundenansprüche hinsichtlich Usability und Informationsqualität zu erfüllen oder durchdachte Online-Marketing-Aktivitäten durchzuführen. Von nichts kommt nichts – außer natürlich Sicherheitslücken und unzufriedene Kunden.

  1. Benni sagte am :

    Auch wenn die neuen Features (Namespaces und FAL) wirklich ihre Kinderkrankheiten hatten, nimmt der neue Versionszweig 6.x immer mehr seine Formen an – und immer mehr Extensions unterstützen die neuen Versionen. Die bald zu erwartende Version 6.0.5 sollte endgültig die größten Probleme mit dem File Abstraction Layer beheben.

    Ich rate prinzipiell dazu, neue Projekte mit TYPO3 6.0/6.1 zu starten, da der Upgrade-Weg von 4.x zu 6.x zwar machbar aber dennoch aufwändiger ist als TYPO3-gewöhnt. Wenn es sich also vermeiden lässt, sollte man gleich auf der grünen Wiese beginnen.

    Wir selbst haben bereits ca. 15 Projekte auf 6.x Basis am Laufen und sind immer zufriedener damit. Unseren dafür vorgesehenen, kunden-zugeschnittenen Extbase-Extensions werden mittlerweile von Haus aus mit Namespaces entwickelt und sind dadurch nur noch 6.x kompatibel.

    Spätestens mit 6.2 möchte ich allen Kunden mit 4.x anbieten, auf 6.2 zu wechseln um von dort wieder stabil weiterentwickeln zu können.

    Für Entwickler von TER-Extensions rate ich dennoch, für alle momentan unterstützten TYPO3-Versionen, 4.5, 4.7 und 6.0/6.1 zu entwickeln.

    Liebe Grüße,
    Benni.

  2. Sven sagte am :

    Ich habe bei einer Neuinstallation vom Introduction Package – Blank Install ein Fehler im Backend, bzw. bei compare der db.

    »You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ’sha1(40)) )‘ at line 36«

    Was ist zu tun? Weißt Du rat?!

    • Stefan Maischner sagte am :

      Hi. Leider nicht aus der kalten. Geht denn trotz dem Fehler alles? Und schau mal auf der Compare-DB-Seite, welche Query das betrifft. Sind ja oben alle mit Checkboxen aufgelistet.

E-Mail-Adresse wird nicht veröffentlicht. Alle Felder sind Pflichtfelder.