On gists
2. Registry
•
PHP Patterns
registry.php
Raw
#
<?php
class Registry
{
static $entries = array();
static function getEntry($name) {
return self::$entries[$name];
}
static function setEntry($name, $value) {
self::$entries[$name] = $value;
}
}
// použití
Registry::setEntry("master", new Db("master"));
$master = Registry::getEntry("master");
registry-deferred.php
Raw
#
<?php
class RegistryDeferred {
static $entries = array();
static $classes = array();
static function register($name, $class) {
self::$classes[$name] = $class;
}
static function getEntry($name) {
if (!isset(self::$entries[$name])) {
self::$entries[$name] = new self::$classes[$name];
}
return self::$entries[$name];
}
}
// použití
RegistryDeferred::register("master", "DbMaster");
// získá objekt třídy DbMaster
$master = RegistryDeferred::getEntry("master");