The scenario for this pattern is not too good to summarize, but based on previous experience, the registry class often stores objects that need to be used elsewhere, such as Redis, memcache classes, and so on, such as configuration information Config class, which acts as a role similar to global variables. The actual implementation is very simple, as shown in the following code:
<?phpclass registry{ static $instance; Public $containers = Array (); static function getinstance () { if (Is_null (self:: $instance)) {self :: $instance = new self (); } Return self:: $instance; } Public function set ($key, $value) { $this->containers[$key] = $value; } Public function Get ($key) { return isset ($this->containers[$key])? $this->containers[$key]: null; }} $registry = Registry::getinstance (); $registry->set (' key1 ', ' hello '); <span style= "White-space:pre" ></ span>//is only for testing, usually the data stored in the registry is Object Var_dump ($registry->get (' Key1 ')); Var_dump ($registry->get (' Key2 '));
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Getting Started with PHP design mode-Registry mode