| 1,注册树模式是通过将实例化对象放到一颗全局的对象树上(池子冲) 2,需要用的时候从注册树上(池子中)直接取 <?php
class Register
{
    /**
     * 注册树池子,存储对象
     * @var null
     */
    protected static $objects = null;
    /**
     *将对象挂到树上,将实例化的对象放入池子中
     * @param $key
     * @param $objects
     */
    public static function set($key, $objects)
    {
        self::$objects[$key] = new $objects;
    }
    /**
     * 从注册树上(从注册树池子中)获取对对象,如果没有则注册
     * @param $key
     * @return mixed
     */
    public static function get($key)
    {
        if (!isset(self::$objects[$key])){
            self::$objects[$key] = new $key;
        }
        return self::$objects[$key];
    }
    /**
     * 删除注册上的对象
     * @param $key
     */
    public static function _unset($key)
    {
        unset(self::$objects[$key]);
    }
}
 使用方法: <?php
namespace app\controller;
use app\BaseController;
use UserInfo;
class Instance extends BaseController
{
    
    public function getRegister()
    {
        $a = new UserInfo();
        \Register::set('user',$a);
//       $name = \Register::get("UserInfo")->getName();
       $name = \Register::get("user")->getName();
       halt($name);
    }
    
}
 |