Das Registry Pattern bietet trotz seiner Einfachheit ein komfortables klassenübergreifendes Daten Handling. Er ermöglicht der Applikation Daten abzulegen um diese an völlig anderer Stelle wieder zu erreichen ohne diese aufwendig "mitzuschleifen".
<?php class Registry { private static $_storage = array(); public static function add($key, &$value) { if (self::exists($key)) { throw new Exception('Registry key "'.$key.'" already exists!'); } self::$_storage[$key] = $value; } public static function & get($key) { if (array_key_exists($key, self::$_storage) { return self::$_storage[$key]; } throw new Exception('Registry key "'.$key.'" not exists!'); } public static function exists($key) { return isset(self::$_storage[$key]); } }
Die Klasse Registry bietet statische Methoden um Werte unter einem Schlüssel in der statischen Eigenschaft $_storage abzulegen und auszulesen.
Dadurch ergibt sich folgende Verwendung:
<?php $foo = new Foo(); // irgendein Objekt $bar = 512; // ablegen der Daten Registry::add('foo', $foo); Registry::add('bar', $bar); ... // völlig andere Stelle innerhalb der Applikation $foo = Registry::get('foo'); $bar = Registry::get('bar');
Es sei jedoch darauf hingewiesen, dass man nicht versuchen sollte, schlechte Objektorientierung bzw. schlechtes Anwendungsdesign durch den übertriebenen Einsatz des Registry Patterns auszugleichen.




Neueste Kommentare
vor 5 Wochen 4 Tage
vor 6 Wochen 1 Tag
vor 16 Wochen 11 Minuten
vor 16 Wochen 1 Tag
vor 25 Wochen 6 Tage
vor 26 Wochen 12 Minuten
vor 33 Wochen 3 Tage
vor 33 Wochen 3 Tage
vor 36 Wochen 5 Tage
vor 37 Wochen 2 Tage