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新建文件自动编号的思路与实现
Jun 27 PHP
深入探讨PHP中的内存管理问题
Aug 31 PHP
一个经典的PHP文件上传类分享
Nov 18 PHP
PHP简单获取视频预览图的方法
Mar 12 PHP
PHP遍历数组的方法汇总
Apr 30 PHP
学习php设计模式 php实现装饰器模式(decorator)
Dec 07 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
Apr 04 PHP
yii通过小物件生成view的方法
Oct 08 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
php字符串函数 str类常见用法示例
May 15 PHP
利用ajax+php实现商品价格计算
Mar 31 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 中文处理技巧
2010/04/25 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
php简单socket服务器客户端代码实例
2015/05/18 PHP
php如何获取文件的扩展名
2015/10/28 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
python binascii 进制转换实例
2019/06/12 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
英国折扣零售连锁店:QD Stores
2018/12/08 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
城市轨道专业个人求职信范文
2013/09/23 职场文书
初中生个人学习的自我评价
2013/12/04 职场文书
个人收入证明范本
2014/01/12 职场文书
综合实践活动方案
2014/02/14 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
国庆阅兵观后感
2015/06/15 职场文书
个人合作协议范本
2015/08/06 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书