/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $generatorConfig = $this->getGeneratorConfig(array('propel.platform.class' => $input->getOption('platform'), 'propel.builder.object.class' => $input->getOption('object-class'), 'propel.builder.objectstub.class' => $input->getOption('object-stub-class'), 'propel.builder.objectmultiextend.class' => $input->getOption('object-multiextend-class'), 'propel.builder.query.class' => $input->getOption('query-class'), 'propel.builder.querystub.class' => $input->getOption('query-stub-class'), 'propel.builder.queryinheritance.class' => $input->getOption('query-inheritance-class'), 'propel.builder.queryinheritancestub.class' => $input->getOption('query-inheritance-stub-class'), 'propel.builder.tablemap.class' => $input->getOption('tablemap-class'), 'propel.builder.pluralizer.class' => $input->getOption('pluralizer-class'), 'propel.disableIdentifierQuoting' => !$input->getOption('enable-identifier-quoting'), 'propel.targetPackage' => $input->getOption('target-package'), 'propel.packageObjectModel' => $input->getOption('enable-package-object-model'), 'propel.namespace.autoPackage' => !$input->getOption('disable-namespace-auto-package'), 'propel.addGenericAccessors' => true, 'propel.addGenericMutators' => true, 'propel.addSaveMethod' => true, 'propel.addTimeStamp' => false, 'propel.addValidateMethod' => true, 'propel.addHooks' => true, 'propel.namespace.map' => 'Map', 'propel.useLeftJoinsInDoJoinMethods' => true, 'propel.emulateForeignKeyConstraints' => false, 'propel.schema.autoPrefix' => false, 'propel.dateTimeClass' => '\\DateTime', 'propel.mysql.tableType' => $input->getOption('mysql-engine'), 'propel.mysql.tableEngineKeyword' => 'ENGINE'), $input); $this->createDirectory($input->getOption('output-dir')); $manager = new ModelManager(); $manager->setFilesystem($this->getFilesystem()); $manager->setGeneratorConfig($generatorConfig); $manager->setSchemas($this->getSchemas($input->getOption('input-dir'))); $manager->setLoggerClosure(function ($message) use($input, $output) { if ($input->getOption('verbose')) { $output->writeln($message); } }); $manager->setWorkingDirectory($input->getOption('output-dir')); $manager->build(); }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $configOptions = array(); $inputOptions = $input->getOptions(); foreach ($inputOptions as $key => $option) { if (null !== $option) { switch ($key) { case 'input-dir': if ('.' !== $option) { $configOptions['propel']['paths']['schemaDir'] = $option; } break; case 'output-dir': $configOptions['propel']['paths']['phpDir'] = $option; break; case 'objects-class': $configOptions['propel']['generator']['objectModel']['builders']['object'] = $option; break; case 'object-stub-class': $configOptions['propel']['generator']['objectModel']['builders']['objectstub'] = $option; break; case 'object-multiextend-class': $configOptions['propel']['generator']['objectModel']['builders']['objectmultiextend'] = $option; break; case 'query-class': $configOptions['propel']['generator']['objectModel']['builders']['query'] = $option; break; case 'query-stub-class': $configOptions['propel']['generator']['objectModel']['builders']['querystub'] = $option; break; case 'query-inheritance-class': $configOptions['propel']['generator']['objectModel']['builders']['queryinheritance'] = $option; break; case 'query-inheritance-stub-class': $configOptions['propel']['generator']['objectModel']['builders']['queryinheritancestub'] = $option; break; case 'tablemap-class': $configOptions['propel']['generator']['objectModel']['builders']['tablemap'] = $option; break; case 'pluralizer-class': $configOptions['propel']['generator']['objectModel']['pluralizerClass'] = $option; break; case 'composer-dir': $configOptions['propel']['paths']['composerDir'] = $option; break; case 'disable-package-object-model': if ($option) { $configOptions['propel']['generator']['packageObjectModel'] = false; } break; case 'disable-namespace-auto-package': if ($option) { $configOptions['propel']['generator']['namespaceAutoPackage'] = false; } break; case 'mysql-engine': $configOptions['propel']['database']['adapters']['mysql']['tableType'] = $option; break; } } } $generatorConfig = $this->getGeneratorConfig($configOptions, $input); $this->createDirectory($generatorConfig->getSection('paths')['phpDir']); $manager = new ModelManager(); $manager->setFilesystem($this->getFilesystem()); $manager->setGeneratorConfig($generatorConfig); $manager->setSchemas($this->getSchemas($generatorConfig->getSection('paths')['schemaDir'], $input->getOption('recursive'))); $manager->setLoggerClosure(function ($message) use($input, $output) { if ($input->getOption('verbose')) { $output->writeln($message); } }); $manager->setWorkingDirectory($generatorConfig->getSection('paths')['phpDir']); $manager->build(); }
/** * Get the ModelManager to use. * * @param InputInterface $input An InputInterface instance. * @param array $schemas A list of schemas. * * @return ModelManager */ protected function getModelManager(InputInterface $input, array $schemas) { $schemaFiles = array(); foreach ($schemas as $data) { $schemaFiles[] = $data[1]; } $manager = new ModelManager(); $manager->setFilesystem(new Filesystem()); $manager->setGeneratorConfig($this->getGeneratorConfig($input)); $manager->setSchemas($schemaFiles); return $manager; }