我正在尋找一種自動生成類的方法。例如,目前我的每個類都是在一個單獨的文件中定義的,php __autoload():自動生成類
class book{
public $name;
public $isbn;
public $id;
}
然後我也有每個類的數據類。數據類繼承了一個很好的數據映射器。所以,如果想裝入一本書的$ id = 2,我會做到以下幾點:
$bookData = new bookData;
$book = $bookData->find(2);
$本書將是書類的草簽版本,並具有其所有屬性設置爲他們在相應的DB 。
現在,我所做的是使用__autoload($ className)自動包含我的類文件。我想使它不必創建類文件。
目前,這是我想出:
__autoload($className){
if(file_exists('classes/'.$className.'.php')){
include 'classes/'.$className.'.php';
}else{
//Go to DB, find table with $className and Get all column names
//Use fopen() to create a new file (like the book class file above)
//Use the coloumns from DB as vars for this new file..
//fclose() file and include new file...
}
}
以上,我認爲是相當混亂,但。有關如何更輕鬆地完成此任務的任何建議?例如,使用__autoload()來生成標準類,並使用從數據庫獲取的屬性名並返回它,而不必創建新文件?
在此先感謝
非常有趣!感謝phpdev,我想我會按照你提到的第一種方式去做。如果我這樣做的話,一些類可能是例外的,例如他們可能需要額外的方法作爲他們類的一部分。例如,book類可能包含一個calculatePrice()方法......關於新數據對象如何處理這些內容的任何建議? – user1020317
我編輯了我的答案以顯示如何實現「calculatePrice()」。 – F21
+1提到RedBeans。 –