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 相关文章推荐
利用PHP创建动态图像
Oct 09 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
PHP简单获取视频预览图的方法
Mar 12 PHP
PHP中set error handler函数用法小结
Nov 11 PHP
CodeIgniter 完美解决URL含有中文字符串
May 13 PHP
php中实现字符串翻转的方法
Feb 22 PHP
WHOOPS PHP调试库的使用
Sep 29 PHP
PHP实现通过strace定位故障原因的方法
Apr 29 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
tp5.1框架数据库子查询操作实例分析
May 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 删除数组元素
2009/01/16 PHP
javascript 小型动画组件与实现代码
2010/06/02 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
super()与this()的区别
2016/01/17 面试题
高三学生评语大全
2014/04/25 职场文书
小学家长学校培训材料
2014/08/24 职场文书
党的群众路线教育实践活动个人对照检查材料(企业)
2014/11/05 职场文书
信仰纪录片观后感
2015/06/08 职场文书
初中政治教学反思
2016/02/23 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers