/** * @param $prefix * @param $filename */ public function __construct(GinnyInput $input) { $this->input = $input; $this->prefix = $input->getOption('prefix'); $this->map = new BaseMap($input->getOption('prefix')); $this->map->namespace = $input->getOption('namespace'); }
public static function convert(GinnyInput $input) { $path = $input->getOption('schema_path'); $parser = new \Symfony\Component\Yaml\Parser(); if (is_dir($path)) { $data['name'] = $input->getOption('bundle'); $data['namespace'] = $input->getOption('namespace'); $data['models'] = []; $data['associations'] = []; $data['manyToManys'] = []; $schema_filename = $input->getOption('schema_filename'); if (empty($schema_filename)) { $filenames = []; $finder = new \Symfony\Component\Finder\Finder(); $finder->files()->in($input->getFullSchemaPath()); foreach ($finder as $file) { if ($file->getFilename() != 'ginny.yml') { $filenames[] = $file->getFilename(); } } } else { $filenames = explode(',', $schema_filename); } foreach ($filenames as $filename) { $file = $parser->parse(file_get_contents($path . $filename)); if (!empty($file['model'])) { $defaults = ['name' => '', 'description' => '']; $model = array_merge($defaults, $file['model']); $defaults = ['name' => '', 'type' => '', 'size' => '', 'default' => false, 'required' => false, 'unique' => false, 'primary' => false, 'autoIncrement' => false]; foreach ($model['fields'] as $n => $field) { $model['fields'][$n] = array_merge($defaults, $field); } $data['models'][] = $model; } if (!empty($file['associations'])) { $data['associations'] = array_merge($data['associations'], $file['associations']); } if (!empty($file['manyToManys'])) { $data['manyToManys'] = array_merge($data['manyToManys'], $file['manyToManys']); } } return ['bundles' => [$data]]; } echo 'booger!'; exit; }