PHP中的实现Registry模式过程中的领悟
<?php
/*
Singleton && Registry Design Pattern Implementation
*/
class Registry {
private $_store = array();
public function getInstance() {
static $instance = array();
if (!$instance) {
$instance[0] = new Registry;
}
return $instance[0];
}
public function &get($key){
if($this->isValid($key)){
return $this->_store[$key];
}
}
public function set($key, $object){
$this->_store[$key] = &$object;
}
public function isValid($key){
return array_key_exists($key,$this->_store);
}
}
?>
Test Case:
<?php
require_once 'simpletest/unit_tester.php';
require_once 'simpletest/reporter.php';
require_once 'Registry.php';
class RegistryTestCase extends UnitTestCase{
function testRegistryIsSingleton(){
$this->assertIsA($reg = Registry::getInstance(), 'Registry');
$this->assertReference($reg, Registry::getInstance());
}
function testEmptyRegistryKeyIsReturnNull(){
$reg = Registry::getInstance();
$this->assertNull($reg->get('key'));
}
function testEmptyRegistryKeyIsInvalid(){
$reg = Registry::getInstance();
$this->assertFalse($reg->get('key'));
}
function testSetRegistryKeyBecomesValid(){
$reg = Registry::getInstance();
$test_value = 'something';
settype($test_value, 'Object');
$reg->set('key', $test_value);
$this->assertTrue($reg->isValid('key'));
}
function testRegistryValueIsReference(){
$reg = Registry::getInstance();
$test_value = 'something';
$reg->set('key', $test_value);
相关文档:
PHP 环境配置
PHP 概述
:
PHP是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。
PHP 功能
:
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更� ......
PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快� ......
windows下:
1.下载用于 Windows 的 Instant Client Basic 程序包:http://download.oracle.com/otn/nt/instantclient/111070/instantclient-basic-win32-11.1.0.7.0.zip
2.解压缩
创建一个子目录(例如,d:\oci),然后从压缩文件中复制以下库:
oraociei10.dll
orannzsbb10.dll
oci.dll
到此目录下
打开PHP.ini ......
一、安装
初次使用Eclipse开发PHP项目,安装还是得花费一定的时间的,仔细看一下本
文,可以节约不少时间。首先。Eclipse项目是用Java开发的,所以需要在Java的虚拟机上运行,而Eclipse缺省是没有带虚拟机的,所以如
果你的机器上没有安装Java虚拟机(一般的Windows机器上都没安装),你先得安装一个,在这里顺便说一下� ......
这个系统其实是练习php基本语法和MySQL的基本查询语句。给一起学习的朋友分享。 ^_^
在php文件中,双斜杠后面是注释语句,我用英文写的注释。
整个系统所包含的.htm和.php文件有:
add_que.htm——添加新题的页面
insert.php——显示添加新题信息的页面
questionlist.php——所有问题列 ......