我正在寻找一种自动生成类的方法。例如,目前我的每个类都是在一个单独的文件中定义的,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。 –