Hallo Zusammen,
bereits seit der Einführung der YAML-basierten Konfiguration von Formularen der EXT:form
oder im Zusammenhang mit Änderungen über das "Site"-Modul, die in einer config.yaml
im Dateisystem gespeichert werden stelle ich mir immer wieder die Frage, wie diese Änderungen im Datei-System, die von Backend-Benutzern verursacht werden können, sinnvoll hinsichtlich der Versionierung umgegangen werden sollte. Bisher habe ich diese Dateien aus der Versionierung ausgeschlossen, um redaktionell getätigte Änderungen nicht versehentlich mit dem nächsten Deployment zu überschreiben.
Mit der Einführung von Site settings seit TYPO3 12.1 sowie den neuen Site Sets in TYPO3 13.1 scheint die Tendenz zu sein, dass mehr und mehr Informationen ins Dateisystem verlagert werden und die Versionierungs-Problematik verschärft sich damit.
Folgendes konkretes Beispiel hat diese Frage aktuell bei mir aufgeworfen:
Konstanten
In einer Kundeninstanz mit mehreren Sites, die das gleiche Template nutzen, habe ich lange Zeit TypoScript-Konstanten genutzt, um Site-spezifische Angaben zu machen. Dazu zählen Daten wie UIDs von Datensatzspeichern/Spezial-Seiten, eine Telefonnummer für die Ausgabe im Header, Layout beeinflussende Parameter, Tracking-Codes, etc.
Seiteneigenschaften
Da die Bearbeitung von Konstanten trotz Konstanteneditor-Konfiguration den Redakteuren zu sperrig erschien bzw. da Konstanten, die nur für Übersetzungen gelten sollen, nicht über den Konstanteneditor pflegbar sind und die Bearbeitung im TypoScript-Textfeld eine Zumutung für Redakteure ist, habe ich schließlich alle Daten in die Seiteneigenschaften verlagert.
Das sieht dann wie folgt aus:
Site Configuration erweitern/Site settings?
Die Nutzung per Seiteneigenschaften hat den Nachteil, dass die ganze pages
-Tabelle um Felder erweitert wird, die eigentlich nur jeweils auf der Root-Site genutzt werden. Ich kann die Felder zwar auf Unterseiten per TSconfig ausblenden aber da sind sie ja trotzdem. Aus diesem Grund denke ich nun in v12 darüber nach, die Site Configuration um die gewünschten Felder zu erweitern (siehe Extending site configuration). Sobald eine GUI für die Site Settings genutzt werden kann, wären diese sogar noch geeigneter, da diese direkt im TypoScript Code wie Konstanten genutzt werden können. In beiden Fällen findet aber dann die Speicherung im Dateisystem statt.
Diese Site-spezifischen Daten sollen also künftig redaktionell in der Staging-Umgebung gepflegt werden können aber müssen auch in die Live-Umgebung deployed werden und zu Testzwecken in der lokalen Entwicklungsumgebung verfügbar gemacht werden. Also im Grunde würde ich mir wünschen, dass diese Daten wie bei einer normalen Datenbank-Synchronisation in die jeweiligen Ziel-Umgebungen gespielt werden können.
Habt ihr euch zu diesem Thema auch schonmal Gedanken gemacht? Wie würdet ihr damit umgehen?