我正在嘗試製作一個小型CMS以獲得樂趣,但是我正在使用面向對象的一些語義。我有一個基本的數據庫類,然後我有一個管理員類。 admin類必須進行數據庫查詢,所以我一直在做的是讓admin類擴展db類,然後通過構造將鏈接傳遞給db資源。我的代碼看起來是這樣的:我應該如何將MySQL數據庫鏈接傳遞給PHP中的類?
class admin extends mysql {
function __construct($link) {
$this->link = $link; //$this->link is in the mysql class
}
}
$db = new mysql($host,$user,$pass,$name);
$admin = new admin($db->link);
我知道應該有一個更簡單的方法來此不延長DB類(我假設調用它的一個全新的實例)。一個朋友告訴我,只是傳遞$ db對象的管理類,它有儲存像這樣:
class admin {
var $db;
function __construct($db) {
$this->db = $db;
}
}
$db = new mysql($host,$user,$pass,$name);
$admin = new admin($db);
這是做事的正確方法是什麼?如果數據庫鏈接已經建立,是否有更簡單的方法來引用它?