php中注册器模式类用法实例分析


Posted in PHP onNovember 03, 2015

本文实例讲述了php中注册器模式类用法。分享给大家供大家参考,具体如下:

注册器读写类
Registry.class.php

<?php
/** 
 * 注册器读写类 
 */
class Registry extends ArrayObject
{
  /** 
   * Registry实例
   *
   * @var object 
   */
  private static $_instance = null;
  /**
   * 取得Registry实例
   * 
   * @note 单件模式
   * 
   * @return object
   */
  public static function getInstance()
  {
    if (self::$_instance === null) {
      self::$_instance = new self();
      echo "new register object!";
    }
    return self::$_instance;
  }
  /**
   * 保存一项内容到注册表中
   * 
   * @param string $name 索引
   * @param mixed $value 数据
   * 
   * @return void
   */
  public static function set($name, $value)
  {
    self::getInstance()->offsetSet($name, $value);
  }
  /**
   * 取得注册表中某项内容的值
   * 
   * @param string $name 索引
   * 
   * @return mixed
   */
  public static function get($name)
  {
    $instance = self::getInstance();
    if (!$instance->offsetExists($name)) {
      return null;
    }
    return $instance->offsetGet($name);
  }
  /**
   * 检查一个索引是否存在 
   * 
   * @param string $name 索引
   * 
   * @return boolean
   */
  public static function isRegistered($name)
  {
    return self::getInstance()->offsetExists($name);
  }
  /**
   * 删除注册表中的指定项
   * 
   * @param string $name 索引
   * 
   * @return void
   */
  public static function remove($name)
  {
    self::getInstance()->offsetUnset($name);
  }
}

需要注册的类
 
test.class.php

<?php
class Test
{
   function hello()
   {
    echo "hello world";
    return;
   }
} 
?>

测试 test.php

<?php
//引入相关类
require_once "Registry.class.php";
require_once "test.class.php";
//new a object
$test=new Test();
//$test->hello();
//注册对象
Registry::set('testclass',$test);
//取出对象
$t = Registry::get('testclass');
//调用对象方法
$t->hello();
?>

希望本文所述对大家php程序设计有所帮助。

PHP 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
php生成SessionID和图片校验码的思路和实现代码
Mar 10 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
在smarty中调用php内置函数的方法
Feb 07 PHP
深入php常用函数的使用汇总
Jun 08 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
php实现的获取网站备案信息查询代码(360)
Sep 23 PHP
PHP抓取远程图片(含不带后缀的)教程详解
Oct 21 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
php上传后台无法收到数据解决方法
Oct 28 PHP
Linux系统下安装PHP7.3版本
Jun 26 PHP
php实现zip文件解压操作
Nov 03 #PHP
thinkphp如何获取客户端IP
Nov 03 #PHP
php去除二维数组的重复项方法
Nov 03 #PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 #PHP
smarty简单应用实例
Nov 03 #PHP
详解PHP+AJAX无刷新分页实现方法
Nov 03 #PHP
php获取远程文件的内容和大小
Nov 03 #PHP
You might like
PHP学习之数组值的操作
2011/04/17 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
python 网络编程常用代码段
2016/08/28 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
有针对性的求职自荐信
2013/11/14 职场文书
护士在校生自荐信
2014/02/01 职场文书
高中生物教学反思
2014/02/05 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
留学推荐信中文范文
2015/03/26 职场文书
教师调动申请报告
2015/05/18 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
使用Springboot实现健身房管理系统
2021/07/01 Java/Android
SQL基础的查询语句
2021/11/11 MySQL