想象一下,你有一些對象的列表。這些對象是擴展基類的各種類的實例。 現在我想將這些對象保存在數據庫中。動態類實例:良好實踐?
作爲一個額外的要求,擴展基類的類的數量可能相當大。
它是很好的做法,類名保存爲字符串,在數據庫中,這樣取,
<?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']);
?>
是否有任何的做法去做那些以更好的方式什麼?