how to obtain all subclasses of a class in php how to obtain all subclasses of a class in php php php

how to obtain all subclasses of a class in php


function getSubclassesOf($parent) {    $result = array();    foreach (get_declared_classes() as $class) {        if (is_subclass_of($class, $parent))            $result[] = $class;    }    return $result;}

Coincidentally, this implementation is exactly the one given in the question linked to by Vadim.


Using PHP 7.4:

$children = array_filter(get_declared_classes(), fn($class) => is_subclass_of($class, MyClass::class)); 


function getClassNames(string $className): array{    $ref = new ReflectionClass($className);    $parentRef = $ref->getParentClass();    return array_unique(array_merge(        [$className],        $ref->getInterfaceNames(),        $ref->getTraitNames(),        $parentRef ?getClassNames($parentRef->getName()) : []    ));}