想象一下,你有一些对象的列表。这些对象是扩展基类的各种类的实例。 现在我想将这些对象保存在数据库中。动态类实例:良好实践?
作为一个额外的要求,扩展基类的类的数量可能相当大。
它是很好的做法,类名保存为字符串,在数据库中,这样取,
<?php
class Page {
abstract public function foo($args);
}
class ChartPage : Page{
public function foo($args){
var_dump($args);
}
}
// other classes like ChartPage would be defined here
// fetched row from a MySQL database
$row = array("id" => 21, "title" => "Test", "class" => "ChartPage", "args" => "{}");
$object = new $row['class'];
$object->foo($row['args']);
?>
是否有任何的做法去做那些以更好的方式什么?