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

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:Hinweis: Formatierungszeichen in Name und E-Mail-Adresse werden nicht akzeptiert.

Name:*
E-Mail:*

Kommentar:


Bestätigungscode:*