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);
Ïà¹ØÎĵµ£º
ÈÎÎñÐèÇó£ºÒ»¸ö»áÒéͶ¸åϵͳ£¬ÔÚ×÷ÕßÌá½»ÂÛÎÄժҪʱ×Ô¶¯Ïò×÷Õß·¢ËÍÒ»·âÈ·ÈÏÓʼþ¡£
(×¢£ºÍ¶¸åϵͳʹÓõÄÊÇmyreview
)
×Ðϸ¿¼ÂÇһϣ¬Õâ¸öÈÎÎñ¿ÉÒÔÓÐÒÔϼ¸ÖÖ·½Ê½Íê³É£º
ÔÚ·þÎñÆ÷ÉÏÅäÖÃsendmail·þÎñ£¬Ê¹ÓÃphpÖеĵÄmailº¯Êý·¢ËÍÓʼþ£»
ÔÚ·þÎñÆ÷Éϰ²×°mutt + msmtp£¬»òÕßÔÚ·þÎñÆ÷Éϰ²×°ÆäËüµÄsmtp¿Í»§¶Ë³ÌÐò£¬Ê¹ÓÃsmtp¿Í» ......
ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º
php´úÂë:
<?php
class ChineseSpell {
/**
* @var array $chineseSpellList Æ´Òô±àÂë¶ÔÓ¦±í
* @access private
*/
private $chineseSpellList = array(
'a'=>-20319,
'ai'=>-20317,
&nbs ......
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»úÆ÷É϶¼Ã»°²×°£©£¬ÄãÏȵð²×°Ò»¸ö£¬ÔÚÕâÀï˳±ã˵һÏ£ ......
0¡¢Óõ¥ÒýºÅ´úÌæË«ÒýºÅÀ´°üº¬×Ö·û´®£¬ÕâÑù×ö»á¸ü¿ìһЩ¡£ÒòΪPHP»áÔÚË«ÒýºÅ°üΧµÄ×Ö·û´®ÖÐËÑѰ±äÁ¿£¬µ¥ÒýºÅÔò²»»á£¬×¢Ò⣺ֻÓÐechoÄÜÕâô×ö£¬ËüÊÇÒ»ÖÖ¿ÉÒ԰Ѷà¸ö×Ö·û´®µ±×÷²ÎÊýµÄ“º¯Êý”£¨Òë×¢£ºPHPÊÖ²áÖÐ˵echoÊÇÓïÑԽṹ£¬²»ÊÇÕæÕýµÄº¯Êý£¬¹Ê°Ñº¯Êý¼ÓÉÏÁËË«ÒýºÅ£©¡£
1¡¢Èç¹ûÄܽ«ÀàµÄ·½·¨¶¨Òå³Éstatic£¬¾Í¾¡ ......