public static function filter_schema_classes(array $classes)
{
$list = array();
foreach ($classes as $class) {
// skip abstract classes.
if (!is_subclass_of($class, 'LazyRecord\\Schema\\DeclareSchema', true) || is_a($class, 'LazyRecord\\Schema\\DynamicSchemaDeclare', true) || is_a($class, 'LazyRecord\\Schema\\MixinDeclareSchema', true) || is_a($class, 'LazyRecord\\Schema\\MixinSchemaDeclare', true) || is_subclass_of($class, 'LazyRecord\\Schema\\MixinDeclareSchema', true)) {
continue;
}
$rf = new ReflectionClass($class);
if ($rf->isAbstract()) {
continue;
}
$list[] = $class;
}
return $list;
}