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);
Ïà¹ØÎĵµ£º
function getThumbs($filename,$savepath,$d_w,$d_h,$b,$img_name)
{
if($b)
{
$photourl = $savepath."/".$img_name;
}else
{
$photourl = ......
ÈÎÎñÐèÇó£ºÒ»¸ö»áÒéͶ¸åϵͳ£¬ÔÚ×÷ÕßÌá½»ÂÛÎÄժҪʱ×Ô¶¯Ïò×÷Õß·¢ËÍÒ»·âÈ·ÈÏÓʼþ¡£
(×¢£ºÍ¶¸åϵͳʹÓõÄÊÇmyreview
)
×Ðϸ¿¼ÂÇһϣ¬Õâ¸öÈÎÎñ¿ÉÒÔÓÐÒÔϼ¸ÖÖ·½Ê½Íê³É£º
ÔÚ·þÎñÆ÷ÉÏÅäÖÃsendmail·þÎñ£¬Ê¹ÓÃphpÖеĵÄmailº¯Êý·¢ËÍÓʼþ£»
ÔÚ·þÎñÆ÷Éϰ²×°mutt + msmtp£¬»òÕßÔÚ·þÎñÆ÷Éϰ²×°ÆäËüµÄsmtp¿Í»§¶Ë³ÌÐò£¬Ê¹ÓÃsmtp¿Í» ......
PHP³ÌÐòÔ±Ó¦¸Ã¶¼ÖªµÀÁ¬½ÓMySQLÊý¾Ý¿â¿ÉÒÔʹÓÃmysql_pconnect£¨ÓÀ¾ÃÁ¬½Ó£©º¯Êý£¬Ê¹ÓÃÊý¾Ý¿âÓÀ¾ÃÁ¬½Ó¿ÉÒÔÌá¸ßЧÂÊ£¬µ«ÊÇʵ¼ÊÓ¦ÓÃÖÐÊý¾Ý¿âÓÀ¾ÃÁ¬½ÓÍùÍù»áµ¼Ö³öÏÖһЩÎÊÌ⣬ͨ³£µÄ±íÏÖ¾ÍÊÇÔÚ´ó·ÃÎÊÁ¿µÄÍøÕ¾ÉÏʱ³£·¢Éú¶Ï¶ÏÐøÐøµÄÎÞ·¨Á¬½ÓÊý¾Ý¿âµÄÇé¿ö£¬³öÏÖÀàËÆ£¢Too many connections in ...£¢µÄ´íÎóÌáʾÐÅÏ¢£¬ÖØÐÂÆô¶¯·þÎñÆ÷Ó ......
<html>
<head>
<title>¼ÆËã±¾ÖÜ¿ªÊ¼½áÊøÈÕÆÚ</title>
</head>
<body>
<form method="post" action="./index.html" enctype="utf-8">
<table>
<tr><td>ÊäÈëÄê·Ý</td><td><input name="year" type="text" maxlength="4" /></td> ......
<?
function GetIP() { //»ñÈ¡IP
if ($_SERVER["HTTP_X_FORWARDED_FOR"])
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if ($_SERVER["HTTP_CLIENT_IP"])
$ip = $_SERVER["HTTP_CLIENT_IP"];
else if ($_SERVER["REMOTE_ADDR"])
$ip = $_SERVER["REMOTE_ADDR"];
......