Ein Hoch auf TYPO3 Distributions

Dieses Jahr habe ich die Strukturierung meiner TYPO3-Templates grundlegend geändert und erstelle sie als Distribution. Lange bin ich mit einer eigenen, nur immer wieder leicht angepassten Template-Organisation gut gefahren. Die Distributions sind aber klar der bessere, weil standardisierte Weg.

Wenn ich von Distributions spreche, meine ich nicht die mitgelieferten Beispielpakete, sondern das Erstellen einer eigenen Distribution, um darin Template, Konfiguration und Datenbank-Anpassungen auszulagern und vom restlichen System zu kapseln.

Prinzipiell ist das Ganze nicht mehr neu. Bei mir hat es nur etwas gedauert, die Vorteile der Distributions zu erkennen und mich vom eingespielten Weg zu verabschieden. Gelohnt hat es sich in jedem Fall. Daher will ich hier einen Überblick geben, welche Dokumentation mir weitergeholfen hat, wo es Probleme gab und wo ich die Vorteile und Grenzen des Ganzen sehe.

Dokumentation

Die Erstellung wird hier kurz erklärt und sehr ausführlich und gut nachvollziehbar im Screencast von Jochen Weinand.

Das Demo Site-Package von Jigal van Hemert bietet auch eine Fülle an nützlichen Beispielen. So wird hier etwa eine Lösung zur Integration von Backend-Layouts in die Distribution unter 6.2 vorgeschlagen.

Ab 7.4 funktioniert aber auch das dann glücklicher Weise direkt im TSConfig, über:

mod.web_layout.BackendLayouts {}

Auch die realUrl-Konfiguration wollte ich direkt in der Distribution auslagern, was mit folgenden Zeilen schnell gemacht ist:

use \TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
include_once(ExtensionManagementUtility::extPath($_EXTKEY) . '/Configuration/PHP/realurl.php');

Vorteile und Grenzen

Die vorgegebene Struktur, bereits bekannt aus Extbase-Extensions, ist ein großer Vorteil. Man findet sich auf Anhieb zurecht und das auch, wenn das Template nicht von einem selbst erstellt wurde. Die Struktur bedeutet mitunter zwar eine ganze Menge Ordner und damit Klicks, daran gewöhnt man sich aber.

Fehlt dann mal die Vorgabe, neige ich zum Grübeln. So gibt es bei mir jetzt z.B. einen Ordner Gulp unter Private. Gulp ist so eingerichtet, dass die Assets beim Build-Prozess von dort nach Public verschoben werden. So richtig glücklich bin ich damit aber nicht. Es ist schon schön an die Hand genommen zu werden. Wie würdet ihr das lösen?

Wie schon beim Auslagern von TypoScript in das Dateisystem, bieten Distributions die Möglichkeit noch mehr, bis hin zu alles, versionierbar und sogar installierbar zu machen. Über die Konfiguration der Abhängigkeiten können alle genutzten Extensions bei der Installation gleich mit installiert werden. Mit einem data.t3d benannten Export unter Initialisation->Files, können sogar ganze Seitenstrukturen inkl. Inhalte bei der Installation angelegt werden.

Mit dieser Basis ist eine jungfräuliche TYPO3-Installation mit der Installation einer einzigen Extension fertig eingerichtet.

Leider scheint das Ganze aber noch nicht ganz so gedacht. Beim zweiten Mal installieren, wird der t3d-Export nämlich erneut genutzt. Die Abhängigkeiten zu den Extension führen dann dazu, dass es nicht möglich ist diese zu deaktivieren, ohne gleich die ganze Distribution deaktivieren zu müssen. Im Alltag bin ich daher dazu übergegangen, nach der ersten Installation die Abhängigkeiten zu den Extensions wieder zu entfernen und den Initialisation-Ordner zu löschen. Nicht gerade optimal. Habe ich da was übersehen?

Wenn man die Distribution dann mal hat, kann man dort eigentlich alles reinpacken. Ab einem Gewissen Grad, halte ich es aber für übersichtlicher, eigene Extensions für spezielle Aufgaben zu erstellen. Anpassungen an der news-Extension lagere ich z.B. lieber übersichtlich aus. Mein Ziel ist es dabei, die Distribution weitestgehend auf das Template zu beschränken. Damit ist in der Extension eh schon genug los.

Und nun?

Also, wenn jemand mit dem Umstieg noch gewartet hat, von wegen „Never stop a running system“, wagt es! Es lohnt sich, macht Spaß und spart Zeit.