Философия(программирования) хД
3 replies73 viewsCurrently viewing: 1
· 03/02/2010, 09:53 PM
Вот сижу голову ломаю
db.php
Раскрывающийся текст
Код
<?
class stream
{
public $mysql,$mssql;
function __construct()
{
}
function add_mysql($name=null)
{
static $i = 0;
$this->mysql[$name?$name:$i++] = new mysql($value["host"],$value["login"],$value["password"],$value["db"],$value["encode"]);
}
function add_mssql()
{
}
}
class db
{
public $stream;
function __construct($type = null,$value = array(),$name=null)
{
if($type)
{
$this->stream = new stream();
$this->add_stream($type,$value,$name);
}
else
{
$this->stream = new stream();
}
}
public function add_stream($type,$value,$name=null)
{
switch($type)
{
case "mysql":
include_once("/db/mysql.php");
$this->stream->add_mysql($name?$name:null);
break;
}
}
public function return_stream($type,$value)
{
switch($type)
{
case "mysql":
include_once("/db/mysql.php");
return new mysql($value["host"],$value["login"],$value["password"],$value["db"],$value["encode"]);
break;
}
}
}
?>
class stream
{
public $mysql,$mssql;
function __construct()
{
}
function add_mysql($name=null)
{
static $i = 0;
$this->mysql[$name?$name:$i++] = new mysql($value["host"],$value["login"],$value["password"],$value["db"],$value["encode"]);
}
function add_mssql()
{
}
}
class db
{
public $stream;
function __construct($type = null,$value = array(),$name=null)
{
if($type)
{
$this->stream = new stream();
$this->add_stream($type,$value,$name);
}
else
{
$this->stream = new stream();
}
}
public function add_stream($type,$value,$name=null)
{
switch($type)
{
case "mysql":
include_once("/db/mysql.php");
$this->stream->add_mysql($name?$name:null);
break;
}
}
public function return_stream($type,$value)
{
switch($type)
{
case "mysql":
include_once("/db/mysql.php");
return new mysql($value["host"],$value["login"],$value["password"],$value["db"],$value["encode"]);
break;
}
}
}
?>
mysql.php просто класс с конструктором
Раскрывающийся текст
Код
<?
class mysql
{
public $connect;
function __construct($host,$login,$password,$db,$encode)
{
}
function test()
{
print "as";
}
}
?>
class mysql
{
public $connect;
function __construct($host,$login,$password,$db,$encode)
{
}
function test()
{
print "as";
}
}
?>
Вот делаю класс работы с различными системами баз хранения
вообщем подключения представляю как потоки
Можно создать древовидной подключение
дб->поток->тип подключения->функции
или вернуть позначению
mysql = дб->создать подключение
Общий набор функций
У кого какое представления API, кто, как видит себе концепцию?
Я так пока представляю
Раскрывающийся текст
Код
<?
include_once("import/object/db.php");
$db = new db("mysql",$value);
$db->stream->mysql[0]->test();
$db = new db();
$mysql = $db->return_stream("mysql",$value);
$mysql->test();
?>
include_once("import/object/db.php");
$db = new db("mysql",$value);
$db->stream->mysql[0]->test();
$db = new db();
$mysql = $db->return_stream("mysql",$value);
$mysql->test();
?>
Пишим свои соображения
У меня тут, есть мысль использовать пространство имён...
0
· 03/02/2010, 10:05 PM
мммм.... может глупость, но не проще ли создать классы подключения к каждой БД, а потом написать свитчер(выбор) ну и конструкторы фнкций под каждую БД с одинаковым названием функций но с разным составом?
0
· 03/02/2010, 10:10 PM
nimbo: мммм.... может глупость, но не проще ли создать классы подключения к каждой БД, а потом написать свитчер(выбор) ну и конструкторы фнкций под каждую БД с одинаковым названием функций но с разным составом?
не я хочу создать рефлексивность в классах что бы в потоке было несколько подключения, но пока удобный на вид интерфейс не приходит в голову
0
Войдите или зарегистрируйтесь чтобы ответить
