我正在寻找一种从WordPress中的父类自动挂钩子类的好方法。
我正在创建一个带有一些不同模板的插件,我想将所有子模板类收集到一个数组中,以便我可以列出它们。
class template {
// Methods
}
class name1 extends template {
// Methods
}
class name2 extends template {
// Methods
}
class name3 extends template {
// Methods
}
答案 0 :(得分:0)
您可以使用get_declared_classes()
(link to docs)。
然后迭代结果,查看返回的哪个类是您的template
类的子代。
例如:
//鉴于这些类别
class father {}
class child1 extends father {}
class child2 extends father {}
class child3 extends father {}
class notMe {}
//您可能具有这样的实用功能
function getChildrenOf(string $parentClass): array {
if (!class_exists($parentClass)) {
return [];
}
$classes = array_filter(get_declared_classes(), function($class) use($parentClass) {
return is_a($class, $parentClass, true);
});
return $classes;
}
//您可以这样使用
$childrenClasses = getChildrenOf(father::class);
var_dump($childrenClasses);
您可以看到它们都here协同工作。