我需要一些關於php對象繼承情況的指導。 我: 配置對象,如:來自類構造函數的PHP對象繼承 - 正確的方法
configuration{
var driver = 'mysql'; // or 'mssql';
var host = 'database_host';
var user = 'database_user';
var password = 'database_password';
var name = 'database_name';
}
兩臺數據庫處理類:
class mysql{
public mysql(){} // connect
public query(){} // set a query
public result(){} // load result
}
class mssql{
public mysql(){} // connect
public query(){} // set a query
public result(){} // load result
}
和某種類控制器:
class database{
public function __construct(){
$configuration = new configuration;
/*
* now, depending on the value of the $configuration->driver
* my database class must inherit methods from mysql or mssql class
*/
switch($configuration->driver){
case 'mysql':
// database inherit mysql methods
break;
case 'mssql':
// database inherit mssql methods
break;
}
}
}
用法,如:
$database = new database;
$database->query('select * from some_table');
$result = $database->result();
所以,當我用我數據庫類的方法,這取決於配置對象,實際上我用的mysql 或 MSSQL 方法。 我看到它的方式不通過,因爲我想我的數據庫類繼承類構造函數中的另一個類。
我希望有人能給我一個關於如何做到這一點的建議..讓我們說...正確的方法。
謝謝。
我在這裏沒有看到任何繼承 - 是數據庫應該擴展嗎? – halfer
你似乎在談論'工廠'模式。看它,它可能有助於回答你的問題 – thaJeztah
爲halfer問題,我想某種dinamically擴展;事情是,我不知道什麼是父類,直到數據庫構造器中的「切換」。 – stef