Nyaah, ты взорвешь ему мозг. не надо :)ну чтож Вы так-то сразу… вроде никого не забрызгал…
получается что-то типо этого (опять же, для начала)?? :
<?php
/**
* абстрактный класс соединения
**/
abstract class DBConnection {
protected $dbhost;
protected $dbname;
protected $dbuser;
protected $dbpassword;
protected $dbcharset;
function setParams( $dbconfig ) {
$this -> dbhost = $dbconfig["dbhost"];
$this -> dbname = $dbconfig["dbname"];
$this -> dbuser = $dbconfig["dbuser"];
$this -> dbpassword = $dbconfig["dbpassword"];
$this -> dbcharset = $dbconfig["dbcharset"];
}
function __construct() {
echo "DB ";
}
}
/**
* расширенный класс соединения для работы с Mysql
**/
class DBMysql extends DBConnection {
function __construct( $dbconfig ) {
parent::__construct();
echo "Mysql<br />";
}
}
/**
* расширенный класс соединения для работы с Postgresql
**/
class DBPostgresql extends DBConnection {
function __construct( $dbconfig ) {
parent::__construct();
echo "Postgresql<br />";
}
}
/**
* фабрика соединений
**/
class DB {
function instance( $dbconfig ) {
switch( $dbconfig["dbdriver"] ) {
case "mysql" :
$DBDriver = new DBMysql( $dbconfig );
break;
case "postgresql" :
$DBDriver = new DBPostgresql( $dbconfig );
break;
}
return $DBDriver;
}
}
?>
require_once "classes/DB.class.php";
$db=DB::instance( array(
"dbdriver" => "mysql",
"dbhost" => "localhost",
"dbname" => "wwwmysqliru",
"dbuser" => "root",
"dbpassword" => "",
"dbcharset" => "cp1251"
));
$db2=DB::instance( array(
"dbdriver" => "postgresql",
"dbhost" => "localhost2",
"dbname" => "wwwmysqliru",
"dbuser" => "postgres",
"dbpassword" => "postgres",
"dbcharset" => "cp1251"
));