TYPO3 Plugin:

golib_extconf

golib_extconf

Bei der Migration unserer Extension als global installierte Extensions in unserer zentralen TYPO3-Quelle (gelesen: nicht im Projekt selbst) entstand das Problem, projektspezifische Konfigurationen hinzuzufügen. TYPO3 stellt für diese Aufgabe zwei Mechanismen zur Verfügung:

  • Erstellen Sie eine Datenbanktabelle und speichern Sie Ihre Konfiguration dort - Dies hat den offensichtlichen Nachteil, dass Sie eine zusätzliche Tabelle erstellen müssen, verhindert aber auch, dass die Konfiguration versioniert wird.

  • Konfiguration über den Erweiterungsmanager - Dieser Ansatz ermöglicht die Versionierung, aber da die gespeicherten Konfigurationsdaten serialisiert sind, werden die Diffs nicht schön sein.

Diese Erweiterung zielt darauf ab, dieses Problem zu lösen, indem sie das Laden der Konfiguration aus PHP-Dateien im Ordner config/ ermöglicht.

Erstellung von Konfigurationsdateien

Erstellen Sie eine Konfigurationsdatei in <TYPO3 ROOT>/config/. Wenn Sie eine Konfiguration für eine bestimmte Erweiterung erstellen, sollte die Datei den Namen <extension key>.php tragen. Beispielsweise würdest du für die Erweiterung golib_test eine Datei config/golib_test.php erstellen.

Ähnlich wie beim Mechanismus ext_autoload muss die Konfigurationsdatei z.B. immer ein Array zurückgeben (sonst wird eine Ausnahme ausgelöst):

<?php # Datei: config/golib_test.php

return array('size' => 42, 'test' => true);

Wenn eine vom Erweiterungsmanager erstellte Konfiguration für die Erweiterung existiert, wird sie in den Schlüssel extConf des zurückgegebenen Konfigurationsarrays geladen.

API-Nutzung

golib_extconf stellt eine einzige Methode tx_golibextconf::get($identifier) zur Verfügung, mit der Konfigurationsdaten abgerufen werden können. Wenn du dich in einem Plugin befindest, kannst du folgendes tun:

tx_golibextconf::get($this); # => array(.....)

Wenn Sie sich nicht in einem Plugin befinden und keinen Zugriff auf ein Plugin-Objekt haben, müssen Sie den vollständigen Identifier angeben:

tx_golibextconf::get('golib_test'); # => array(....)

Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.