Registry
Die
Registry (siehe registry pattern) dient im Adventure PHP Framework als zentrale
Stelle für die Speicherung von Konfigurationsparametern. Parameter sind in diesem Zusammenhang
sowohl einfache Datentypen wie Zeichenketten und Zahlen als auch Objekte. Die
Registry
wird von den core- und tools-Komponenten dazu verwendet, die Konfigurationsdirektiven
- URLRewriting (Konfiguration des URL-Rewriting)
- URLBasePath (Pfad zur aktuellen Anwendung)
- Environment (Umgebungsvariable für die Konfiguration)
- LogDir (Pfad zum Log-Verzeichnis)
- LibPath (Pfad zu den Quellcode-Dateien)
- CurrentRequestURL (Vollständige Request-URL)
im Namespace
apf::core vorzuhalten. Die Registry dient jedoch nicht nicht nur als
globale Speicherstelle für die Parameter des Frameworks, sondern kann auch in Applikationen zur
Speicherung von Applikationskonfigurationen verwendet werden.
Die
Registry wurde im Release 1.12 aus Performance-Gründen auf eine statische
Implementierung umgestellt. In allen vorherigen Releases muss diese via
PHP-Code
$reg = &Singleton::getInstance('Registry');
bezogen und als Objekt angesprochen werden. Hier stehen ebenfalls die Methoden
register()
und
retrieve() zur Verfügung. Diese besitzten eine zur neuen Implementierung
identische Signatur.
Ab Release 1.12 steht die
Registry als statischer Container zur Konfiguration von Parametern
des Frameworks und eigenen zur Verfügung. Die Methode
register() dient dazu,
bereits vorhandene Werte zu manipulieren oder neue Werte hinzuzufügen. Die Funktion
retrieve() bezieht Werte aus der Registry. Um eine definierte Abgrenzung zwischen
Wertebereichen zu schaffen, besitzt die
Registry Namespaces. Um auch bei der Verwendung
durch weitere Applikationen keine Überschneidung von Wertebereichen zu generieren, ist es ratsam,
den Namespace der Applikation als Namespace in der Registry zu verwenden.
Um die oben genannten Standard-Werte zu manipulieren, kann folgender PHP-Code eingesetzt werden:
PHP-Code
Registry::register('apf::core','URLRewriting',true);
Registry::register('apf::core','URLBasePath','http://example.com/folder');
Registry::register('apf::core','Environment','TESTSERVER');
Registry::register('apf::core','LogDir','/path/to/my/log/dir');
Bei der Manipulation der Standard-Werte oder auch von eigenen Registry-Einträgen ist darauf zu
achten, dass diese vor dem Erstellen des Page- bzw. FrontControllers geändert werden.
Um bei Einträgen für eigene Applikationen sicher gehen zu können, dass diese während
der Laufzeit nicht mehr verändert werden können, bietet die Registry einen Schreibschutz.
Dieser kann mit einem optionalen Parameter bei der Befüllung eines Wertes aktiviert werden und
bleibt bis zum Ende des Requests erhalten. Hierzu kann folgendes Beispiel als Quellcode-Vorlage
hinzugezogen werden:
PHP-Code
// Wird erfolgreich durchgeführt
Registry::register('modules::mymodule','MyModuleID',1,true);
// Erzeugt einen Fehler
Registry::register('modules::mymodule','MyModuleID',2);
Kommentare
Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese
hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.