我有一个对象,想要列出所有父类,直到stdClass或其他什么.
我已经在我的数据库表中添加了一个多态字段(比如类别),并希望自动化我的finder方法,以便还返回超类,这样我就可以跳到继承树中,我知道不一定是最后的子类:
FoodCategory::find_by_id(10) === Category::find_by_id(10)
SELECT * FROM categories WHERE ..... AND type IN ('FoodCategory', 'Category');
粗略地我猜:
function get_class_lineage($object){
$class = get_parent_class($object);
$lineage = array();
while($class != 'stdClass'){
$dummy_object = new $class();
$lineage[] = $class = get_parent_class($dummy_object);
}
return $lineage;
}
但这会实例化一个对象,有没有人知道如何实现这个目标?
感谢任何输入,我觉得我在这里遗漏了一些明显的东西.