概念:将对象注册到全局的树上,任何地方直接去访问。
实例:
定义注册树模式类
<?php namespace app; /** * 注册树模式实例类 * Class Register * @package app */ class Register { /** * 定义全局树,当成一个全局变量可能更好理解 */ protected static $object; /** * 定义设置注册方法: 把$val对象放到树上 * @param $key * @param $val */ public static function set($key, $val) { self::$object[$key] = $val; } /** * 获取注册树中的对象 * @param $key */ public static function get($key) { return self::$object[$key]; } /** * 删除注册树中的对象 * @param $key */ public static function _unset($key) { unset(self::$object[$key]); } }
附上我的目录,方便边对比命名空间

在任意地方调用注册树,如在index.php中使用
<?php // 定义自动注册 spl_autoload_register(function ($class) { include $class . '.php'; }); // 在注册树中映射db对象(这里只是测试,一般这个动作是要在初始化的适合就要做的) $db = \app\Database::getInstance();// 获取数据库连接对象 \app\Register::set('db', $db); // 把对象映射到注册树 // 在程序中任意地方调用注册树中的db对象 $res = \app\Register::get('db'); // 删除注册树中的db对象(这里只是测试,一遍这个动作是要在程序结束的地方做) \app\Register::_unset('db');
到此就完成了
浙公网安备 33010602011771号