コード例 #1
0
 /**
  * {@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();
 }
コード例 #2
0
ファイル: ModelBuildCommand.php プロジェクト: hhamon/Propel2
 /**
  * {@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();
 }
コード例 #3
0
 /**
  * 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;
 }