PHP设计模式 注册表模式(多个类的注册)_php技巧

以前我也写过一个注册表类,不过那一个不能进行多个类的注册,下面用数组对类进行了存储。

复制代码 代码如下:

<?php
//基础类
class webSite {//一个非常简单的基础类
private $siteName;
private $siteUrl;
function __construct($siteName,$siteUrl){
$this->siteName=$siteName;
$this->siteUrl=$siteUrl;
}
function getName(){
return $this->siteName;
}
function getUrl(){
return $this->siteUrl;
}
}
class registry {//注册表类 单例模式
private static $instance;
private $values=array();//用数组存放类名称
private function __construct(){}//这个用法决定了这个类不能直接实例化
static function instance(){
if (!isset(self::$instance)){self::$instance=new self();}
return self::$instance;
}
function get($key){//获取已经注册了的类
if (isset($this->values[$key])){
return $this->values[$key];
}
return null;
}
function set($key,$value){//注册类方法
$this->values[$key]=$value;
}
}
$reg=registry::instance();
$reg->set("website",new webSite("WEB开发笔记","www.chhua.com"));//对类进行注册
$website=$reg->get("website");//获取类
echo $website->getName();//输出WEB开发笔记
echo $website->getUrl();//输出www.chhua.com
?>

注册表的作用是提供系统级别的对象访问功能。有的同学会说,这样是多此一举,不过小项目中的确没有必要对类进行注册,如果是大项目,还是非常有用的。

时间: 2024-11-08 21:45:33

PHP设计模式 注册表模式(多个类的注册)_php技巧的相关文章

php设计模式入门-注册表模式

对于这个模式的应用场景不是太好总结,只是根据之前的经验,注册表类里面经常会存储一些别的地方需要用到的对象,比如redis.memcache类,还比如配置信息config类等,它扮演的是一个类似于全局变量的角色.具体的实现其实非常简单,如下代码所示: containers[$key] = $value; } public function get($key){ return isset($this->containers[$key]) ? $this->containers[$key] : nu

老生常谈PHP面向对象之注册表模式

注册表模式可似把他想像成一个全局变量,所有的模块都从这个全局变量里存取数据,或者也可以想象成某个酒吧的许愿墙或留言版,上面的内容大家都可以看到,也可以改写.这里主要按作用域介绍三种类别的注册表类(请求级别.会话级别.应用程序级别). namespace woo\base; //基类 abstract class Registry { abstract protected function get($key); abstract protected function set($key,$val);

亡羊补牢 注册表损坏之后的恢复_注册表

自Windows 95系统后,Windows系统采用了注册表的管理机制.注册表的数据保存在以下两个系统文件中:User.dat和System.dat.注册表是Windows系统正常运行的保证之一.一旦注册表出现故障,就可能导致Windows系统不能正常运行. 正是基于注册表的重要性,Windows系统采取了相应的保护措施.保护措施的基本方法是将上一次正常启动系统时的注册表数据文件和相关的INI文件进行备份,一旦出现故障后,通过恢复上次正常启动的配置来进行系统的恢复.下面介绍一下在Win 98系统

注册表怎么打开?如何打开注册表图文教程

注册表怎么打开?近日有朋友问如何打开注册表.其实注册表怎么打开的方法非常简单,一个Regedit的命令即可.然而,如何打开注册表其实并不重要,重要的是,你不要随意去修改注册表上的信息,否则系统瘫痪也说不定. 如何打开注册表编辑器图文教程 注册表怎么打开?方法其实很简单,在Windows系统的"运行"里输入"Regedit"即可. 运行在哪?XP和Win7系统的在"运行"在开始菜单里,而Win8和Win8.1的开始菜单在右键菜单里(鼠标右键点击屏幕

Windows api关于注册表的操作经验和总结_注册表

读取注册表常用的函数 RegOpenKeyEx 用于打开一个键 RegSetValueEx 用于设置一个键的键值 RegQueryValueEx 用于读取一个键的值 RegCloseKey 用于关闭RegOpen打开的键 RegQueryValueEx通常连用两次来读取键值,第一次只读取键的大小,然后分配内存,然后再用一次RegQueryValueEx来读取键值到buffer.下面是一个读取windows下的path键值的例子 HKEY hk; int result = RegOpenKeyEx

javascript判断并获取注册表中可信任站点的方法_javascript技巧

本文实例讲述了javascript判断并获取注册表中可信任站点的方法.分享给大家供大家参考.具体分析如下: 判断可信任站点,首先要在注册表中找到可信任站点在注册表中的位置,如下: (1)域名作为可信任站点在注册表中的位置:  HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings\\ZoneMap\\Domains\\ (2)IP作为可信任站点在注册表中的位置:  HKCU\\Software\\Microsoft

Win2k注册表备份恢复详解_注册表

Windows 2000 将它的配置信息存储在名为注册表的数据库中,其中包含了每个计算机用户的配置文件,以及有关系统硬件.已安装的程序和属性设置等信息,Windows 2000 在运行过程中要一直引用这些信息.注册表是以二进制形式存储在硬盘上,错误地编辑注册表可能会严重损坏系统.所以,在更改注册表之前,强烈建议备份注册表信息.为了防止在修改注册表的时候发生致命错误,有必要了解一下注册表文件的备份和恢复方法.除此之外,为了研究注册表的结构,还可以将注册表中的某一主键或子键保存为文本文件,或者打印出

玩转注册表 系统注册表文件解锁奇招_注册表

很多人由于浏览了恶意网站从而导致注册表被锁,相关报刊介绍了各种各样的处理方法,例如通过编辑注册表文件或用超级兔子等工具来进行修改等等.但是如果你手头一时无此类工具,又记不住注册表文件的内容,该怎么办呢?其实,你完全可以利用微软在系统安装光盘中所提供的另一款利器--系统策略编辑器(Poledit),轻松地解决这个问题.不仅如此,你还可以利用系统策略编辑器来实现一些只有通过修改注册表才能实现的功能. 我们以在Windows 9x操作系统下的使用为例来介绍.首先将安装光盘中Tools\Reskit\N

PHP设计模式 注册表模式_php技巧

下面是基本的注册表类的代码: 复制代码 代码如下: <?php class Registry { private static $instance; private $request;//注册表的内容类 private function __construct(){}//本类,不可实例化 static function instance(){//单例类,通过这个方法返回实例 if (!isset(self::$instance)){self::$instance=new self();} ret