/**
* Returns schema objects.
*
* @return array schema objects
*/
public static function findSchemasByArguments(ConfigLoader $loader, $args, $logger = null)
{
if (count($args) && !file_exists($args[0])) {
$classes = array();
// it's classnames
foreach ($args as $class) {
// call class loader to load
if (class_exists($class, true)) {
$classes[] = $class;
} else {
if ($logger) {
$logger->warn("{$class} not found.");
} else {
echo ">>> {$class} not found.\n";
}
}
}
return ClassUtils::schema_classes_to_objects($classes);
} else {
$finder = new SchemaFinder();
if (count($args) && file_exists($args[0])) {
$finder->paths = $args;
foreach ($args as $file) {
if (is_file($file)) {
require_once $file;
}
}
} elseif ($paths = $loader->getSchemaPaths()) {
$finder->setPaths($paths);
}
$finder->find();
// load class from class map
if ($classMap = $loader->getClassMap()) {
foreach ($classMap as $file => $class) {
if (!is_numeric($file) && is_string($file)) {
require $file;
}
}
}
return SchemaLoader::loadDeclaredSchemas();
}
}