/** * Returns an array with the classes that implements the specified interface */ public static function getInterfaceImplementations($interface_name) { $classes = array(); foreach (get_declared_classes() as $class_name) { $reflection_class = new \ReflectionClass($class_name); if (!$reflection_class->isAbstract()) { if ($reflection_class->implementsinterface($interface_name)) { $classes[$class_name] = $class_name; } } } return $classes; }