TYPO3 Camp Rhein Ruhr 2015 – Recap 4: Extensions nach TYPO3 7 LTS migrieren

Extensions nach TYPO3 7 LTS migrieren

Extensions nach TYPO3 7 LTS migrieren

TYPO3 Camp RheinRuhr

Dieses Jahr durfte ich zum zweiten Mal am TYPO3Camp RheinRuhr teilnehmen. Es war wieder einmal eine sehr motivierende, lehrreiche und schöne Veranstaltung. Oft liefen mehrere hochinteressante Vorträge parallel, so dass die Wahl nicht immer leicht fiel.

Im Vorfeld hatte ich bei Twitter gelesen, dass Entwickler dazu aufgerufen werden, Ihre Erweiterungen für die neue 7er LTS-Version fit zu machen. Allerdings gibt es bislang keine Anleitung dazu. Deshalb hatte ich bei der Session-Planung vorgeschlagen, Infos zu diesem Thema zusammenzutragen und dann z. B. im TYPO3 Wiki zu veröffentlichen. Die Core-Entwicklerin Nicole Cordes hat daraufhin eine Session dazu am zweiten Tag angeboten, für die sich auch zahlreiche Teilnehmer meldeten. Vielen Dank an Nicole und es ist ein prima Beispiel dafür, dass wirklich jeder etwas zum TYPO3 Projekt beitragen kann. Auch wenn man kein Entwickler ist, kann man Fragen stellen, Infos sammeln und anderen damit weiterhelfen.

Inhalt der Session „Extension Update“ von Nicole Cordes

Eine wichtige Quelle für relevante Infos zur Migration ist das Verzeichnis typo3/sysext/core/Documentation/Changelog der aktuellen TYPO3 LTS Version. Dort sind für jeden Entwicklungsschritt der 7er Version die Änderungen am Core aufgelistet und in die Kategorien „Breaking Changes“, „Features“, „Deprecation“ und „Important“ aufgeteilt.
Es wurde angeregt, eine Zusammenfassung dieser Änderungen über alle Zwischenschritte hinweg zu erzeugen, damit man ein leicht durchsuchbares Nachschlagewerk für den Wechsel der LTS Version bekommt.

Eine mögliche Vorgehensweise beim Update ist es, vor der Umstellung Einträge im deprecation-Log auszuwerten und die oben genannten Dokumente danach zu durchsuchen. Bei älteren Projekten kann auch das Smooth-Migration Projekt hilfreich sein. Dort gibt es eine Erweiterung, die verschiedene Werkzeuge und Berichte für den Umstieg auf 6.2 bereitstellt. Wenn man die Erweiterung damit sauber auf die 6.2 Standards umgestellt hat, ist schon ein Großteil der Arbeit erledigt. Nach der Umstellung auf 7 LTS wertet man die dann noch auftretenden Fehler ebenfalls wie oben beschrieben aus und korrigiert sie.

Nicole hat uns auch darauf hingewiesen, dass der Extension-Builder mit Vorsicht zu genießen ist. Er erzeugt nicht unbedingt den besten Code und besonders bei der TCA Konfiguration, sollte man den erzeugten Code aus der ext_tables.php in eine eigene Datei nach Configuration/TCA verschieben.

Ein weiterer Hinweis galt dem New Content Element Wizard. Neue Einträge für diesen Wizard werden in Extensions häufig noch per PHP erzeugt. Es geht aber auch komplett mit Page TS-Config, was der bessere und empfohlene Weg ist.

Folgende Schritte werden in den meisten Fällen nötig und sinnvoll sein:

  • Alle loadTCA Anweisungen entfernen (ext_tables.php)
  • Die Abhängigkeit (depends) von einer bestimmten PHP-Version sollte aus der Datei ext_emconf.php entfernt und die TYPO3 Version auf 7.99.99 eingestellt werden
  • Alle alten Klassennamen durch die neuen Namespace-Bezeichnungen ersetzen. z. B. t3lib_div durch \TYPO3\CMS\Core\Utility\GeneralUtility
  • xclassing entfernen

Allgemein sollte man die Entwicklung des Cores aktiv verfolgen, seine Extensions mit der jeweils aktuellsten Version testen und damit nicht erst bis zum Release der LTS warten. Wenn man dabei konsequent alle Fehler beseitigt, die Einträge im deprecation Log auswertet und den Code entsprechend anpasst und aktuell hält, vereinfacht das die Umstellung von LTS zu LTS erheblich.

Links: