我想創建一個自動機制,將數據從數據庫加載到對象使用抽象類,將在必要時擴展。抽象記錄
這裏是我的簡單的想法,這是不是在目前的工作,因此,如果有人可以解釋我爲什麼和我做錯了什麼:
抽象類:
abstract class abstractRecord{
public $data = array();
public function __constructor($id = null){
global $db; // eg. PDO
$this->db = $db;
if(!is_null($id) && intval($id) > 0)
$this->fillData($id);
}
public function fillData($id){
$this->data = $db->getAll("SELECT * FROM ".self::$table." WHERE ".self::$id."='$id'");
}
}
現在一些類,將延長abstratRecord並應在抽象的開始使用構造函數,如果有效身份證件提供
class User extends abstractRecord{
public static $id = "`id`";
public static $table = "`users`";
// some other functions for controlling user...
}
填寫數據,並在最後的使用
$user = new User(15); // so user data from db with id=15 should be loaded into object data property by abstractRecord class
所以這只是簡單的版本,應該有更多的驗證,干將制定者接口....
現在只想知道這裏爲什麼是錯誤的,而且是有可能在不調用parent :: __ constructor()的情況下使用這個流程,據我所知在這種情況下類應該擴展抽象__constructor,或者我錯了?
啊,是的,解決了一些問題,現在即時通過抽象類訪問在子類中定義的屬性的問題,這是非常關鍵的functionallity,所以如果我定義公共靜態$ table =「table_name」我需要能夠在抽象類中使用這個屬性... – devilsreject 2013-02-19 21:46:48
這似乎是另一個問題,這個似乎解決了。 – Timmetje 2013-02-20 11:12:27