У меня есть объект, и я хочу перечислить все родительские классы вплоть до stdClass или любого другого.
Я добавил полиморфное поле в свою таблицу базы данных (скажем, категории) и хочу автоматизировать мой метод поиска, чтобы супер-классы также возвращались, таким образом я могу перейти в дерево наследования в точке, которую я не обязательно знаю, в финал подкласс:
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;
}
Но это создает объект, кто-нибудь знает, как этого достичь без?
Спасибо за любой вклад, я чувствую, что здесь что-то упущено.