]> git.andy128k.dev Git - ipf-legacy-orm.git/commitdiff
batch generation of models
authorAndrey Kutejko <andy128k@gmail.com>
Thu, 19 Sep 2013 01:41:08 +0000 (04:41 +0300)
committerAndrey Kutejko <andy128k@gmail.com>
Thu, 19 Sep 2013 01:41:08 +0000 (04:41 +0300)
ipf/orm.php
ipf/orm/import/schema.php

index 6ec89280d4b96779bb9b464ed3d759d9127119a7..a0f573ec3810b6d9626c022145c9b3936456c82d 100644 (file)
@@ -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);
index 9b345adfa9ebd935a93c122991a189e2a686ad25..f7c22d9af05a014cec1881eae4bab84e252f4c4d 100644 (file)
@@ -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;