Klassen-Referenz - Registry
1. Einleitung
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.
2. Einsatz der Registry
Um die Registry als zentrale Komponente nutzen zu können, muss diese SINGLETON erstellt
werden. Da die Registry bereits im PageController eingebunden und initialisiert wird, genügt ein
einfaches
$Reg = &Singleton::getInstance('Registry');
um eine Referenz auf die Singleton-Instanz der Registry im aktuellen Gültigkeitsbereich zu
beziehen. Anschließend dient die Methode register() 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:
$Reg = &Singleton::getInstance('Registry');
$Reg->register('apf::core','URLRewriting',true);
$Reg->register('apf::core','URLBasePath','http://example.com/folder');
$Reg->register('apf::core','Environment','TESTSERVER');
$Reg->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.
3. Schreibschutz
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:
// Referenz auf die Registry beziehen
$Reg = &Singleton::getInstance('Registry');
// Wird erfolgreich durchgeführt
$Reg->register('modules::mymodule','MyModuleID',1,true);
// Erzeugt einen Fehler
$Reg->register('modules::mymodule','MyModuleID',2);
Kommentare
Bitte geben Sie Ihren Kommentar hier ein. Füllen Sie alle mit * gekennzeichneten Felder vollständig und korrekt aus. Um zum Artikel zurückzukehren klicken sie bitte hier. Zur Formatierung des Textes können folgende BBCode-ähnliche die Zeichen verwendet werden:- [f]..[/f]: fett
- [k]..[/k]: kursiv
- [u]..[/u]: unterstrichen
Hinweis: Formatierungszeichen in Name und E-Mail-Adresse werden nicht akzeptiert.