自己写的一个比较简洁直观的数据库工厂连接类,结合了单例模式和工厂模式
/**
* db_factory.class.php 数据库工厂类
*
* @copyright (C) 2005-2010 ken
* @license
* @lastmodify 2010-6-1
*/
final class db_factory {
private static $instance;
protected $db;
/**
* 返回数据库连接类对象的实例
* @return object
*/
public static function get_instance($database = '') {
if (!isset(self::$instance)) {
self::$instance = new self();
if ($databse == '') {
$database = $GLOBALS['database'];
}
$object = null;
switch($database['type']) {
case 'mysql' :
require_once 'mysql.class.php';
$object = new mysql();
break;
case 'mysqli' :
require_once 'mysqli.class.php';
$object = new mysqli();
break;
default :
require_once 'mysql.class.php';
$object = new mysql();
}
$object->open($database);
self::$instance->db = $object;
}
return self::$instance->db;
}
}
调用的时候这样 $db = db_factory::get_instance();