/ Gists / 2. Registry
On gists

2. Registry

PHP Patterns

pic.md Raw #

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");