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 zur einfacheren Verwendung. Alternativ können Sie zur Generierung der aktuellen URL auch die Klasse Url nutzen.
  • Charset: Intern verwendeter Zeichensatz (z.B. für Filter; Standard: UTF-8)

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

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'); Registry::register('apf::core', 'Charset', 'UTF-16');

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:

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.