Один из способов сделать это - через ReflectionClass
.
$child_class_name = get_called_class();
$child_methods = (new ReflectionClass($child_class_name))->getMethods();
$child_only_methods = [];
foreach($child_methods as $object){
// This step allows the code to identify only the child methods
if($object->class == $child_class_name){
$child_only_methods[] = $object->name;
}
}
Использование ReflectionClass позволяет проверять дочерний класс, не изменяя дочерний класс, не вводя статические методы или переменные или не используя позднее.статическое связывание.
Тем не менее, оно создает накладные расходы, но решает техническую проблему, описанную выше.