Klassen-Referenz - Registry

Artikel bewerten:
Dieser Artikel wurde noch nicht bewertet. Bewerten Sie diesen Artikel als erstes!

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 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

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.