src/Core/ClassInfo.php
public static function getValidSubClasses($class = SiteTree::class, $includeUnbacked = false)
    {
        if (is_string($class) && !class_exists($class)) {
            return array();
        }

        $class = self::class_name($class);
        if ($includeUnbacked) {
            $table = DataObject::getSchema()->tableName($class);
            $classes = DB::get_schema()->enumValuesForField($table, 'ClassName');
        } else {
            $classes = static::subclassesFor($class);
        }
        return $classes;
    }
public static function getValidSubClasses($class = SiteTree::class, $includeUnbacked = false)
    {
        if (is_string($class) && !class_exists($class)) {
            return array();
        }

        $class = self::class_name($class);
        if ($includeUnbacked) {
            $table = DataObject::getSchema()->tableName($class);
            $classes = DB::get_schema()->enumValuesForField($table, 'ClassName');
        } else {
            $classes = static::subclassesFor($class);
        }
        return $classes;
    }
public static function getValidSubClasses ( $ class = SiteTree :: class , $ includeUnbacked = false ) { if ( is_string ( $ class ) && ! class_exists ( $ class ) ) { return array ( ) ; } $ class = self :: class_name ( $ class ) ; if ( $ includeUnbacked ) { $ table = DataObject :: getSchema ( ) -> tableName ( $ class ) ; $ classes = DB :: get_schema ( ) -> enumValuesForField ( $ table , 'ClassName' ) ; } else { $ classes = static :: subclassesFor ( $ class ) ; } return $ classes ; }
Returns the manifest of all classes which are present in the database.

@param string $class Class name to check enum values for ClassName field
@param boolean $includeUnbacked Flag indicating whether or not to include
types that don't exist as implemented classes. By default these are excluded.
@return array List of subclasses
Returns the manifest of all classes which are present in the database .