From 4f80b2d6ec5af3dbcc4f3ef03aa160e6d0cd3bcf Mon Sep 17 00:00:00 2001 From: Andrey Kutejko Date: Thu, 19 Sep 2013 04:41:08 +0300 Subject: [PATCH] batch generation of models --- ipf/orm.php | 8 ++++++-- ipf/orm/import/schema.php | 10 +++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ipf/orm.php b/ipf/orm.php index 6ec8928..a0f573e 100644 --- a/ipf/orm.php +++ b/ipf/orm.php @@ -177,15 +177,19 @@ final class IPF_ORM public static function generateModelsFromYaml($directory, $extraAllwedReferences=array()) { + $files = array(); + foreach ((array)$directory as $dir) + $files[] = $dir . '/models.yml'; + // load schema $import = new IPF_ORM_Import_Schema; - $definitions = $import->importSchema($directory . '/models.yml', $extraAllwedReferences); + $definitions = $import->importSchema($files, $extraAllwedReferences); // build - $targetPath = $directory . '/models'; $models = array(); foreach ($definitions as $name => $definition) { print " $name\n"; + $targetPath = substr($definition['input_file'], 0, -4); $builder = new IPF_ORM_Import_Builder; $builder->buildRecord($definition, $targetPath); diff --git a/ipf/orm/import/schema.php b/ipf/orm/import/schema.php index 9b345ad..f7c22d9 100644 --- a/ipf/orm/import/schema.php +++ b/ipf/orm/import/schema.php @@ -81,7 +81,15 @@ class IPF_ORM_Import_Schema public function importSchema($filename, $extraAllwedReferences) { - $array = $this->parseSchema($filename); + $filename = (array)$filename; + $array = array(); + foreach ($filename as $fn) { + $definitions = $this->parseSchema($fn); + foreach ($definitions as &$definition) + $definition['input_file'] = $fn; + $array = array_merge($array, $definitions); + } + $array = $this->_buildRelationships($array, $extraAllwedReferences); $array = $this->_processInheritance($array); return $array; -- 2.49.0