protected interact ( Symfony\Component\Console\Input\InputInterface $input, Symfony\Component\Console\Output\OutputInterface $output ) | ||
$input | Symfony\Component\Console\Input\InputInterface | |
$output | Symfony\Component\Console\Output\OutputInterface |
protected function interact(InputInterface $input, OutputInterface $output) { $questionHelper = $this->getQuestionHelper(); $questionHelper->writeSection($output, 'Welcome to the Symfony2Admingenerator'); $output->writeln('<comment>Create an admingenerator bundle with generate:bundle</comment>'); $generator = $input->getOption('generator'); $question = new ChoiceQuestion('Generator to use (doctrine, doctrine_odm, propel)', array('doctrine', 'doctrine_odm', 'propel'), 0); $question->setErrorMessage('Generator to use have to be doctrine, doctrine_odm or propel.'); $generator = $questionHelper->ask($input, $output, $question); $input->setOption('generator', $generator); // Model name $modelName = $input->getOption('model-name'); $question = new Question($questionHelper->getQuestion('Model name', $modelName), $modelName); $question->setValidator(function ($answer) { if (empty($answer) || preg_match('#[^a-zA-Z0-9]#', $answer)) { throw new \RuntimeException('Model name should not contain any special characters nor spaces.'); } return $answer; }); $modelName = $questionHelper->ask($input, $output, $question); $input->setOption('model-name', $modelName); // prefix $prefix = $input->getOption('prefix'); $question = new Question($questionHelper->getQuestion('Prefix of yaml', $prefix), $prefix); $question->setValidator(function ($prefix) { if (!preg_match('/([a-z]+)/i', $prefix)) { throw new \RuntimeException('Prefix have to be a simple word'); } return $prefix; }); $prefix = $questionHelper->ask($input, $output, $question); $input->setOption('prefix', $prefix); parent::interact($input, $output); }
protected function interact(InputInterface $input, OutputInterface $output) { $dialog = $this->getDialogHelper(); $dialog->writeSection($output, 'Welcome to the Symfony2 admin generator'); $output->writeln('<comment>Create an admingenerator bundle with generate:bundle</comment>'); $generator = $dialog->askAndValidate($output, $dialog->getQuestion('Generator to use (doctrine, doctrine_odm, propel)', $input->getOption('generator')), function ($generator) { if (!in_array($generator, array('doctrine', 'doctrine_odm', 'propel'))) { throw new \RuntimeException('Generator to use have to be doctrine, doctrine_odm or propel'); } return $generator; }, false, $input->getOption('generator')); $input->setOption('generator', $generator); // Model name $modelName = $dialog->askAndValidate($output, $dialog->getQuestion('Model name', $input->getOption('model-name')), function ($modelName) { if (empty($modelName) || preg_match('#[^a-zA-Z0-9]#', $modelName)) { throw new \RuntimeException('Model name should not contain any special characters nor spaces.'); } return $modelName; }, false, $input->getOption('model-name')); $input->setOption('model-name', $modelName); // prefix $prefix = $dialog->askAndValidate($output, $dialog->getQuestion('Prefix of yaml', $input->getOption('prefix')), function ($prefix) { if (!preg_match('/([a-z]+)/i', $prefix)) { throw new \RuntimeException('Prefix have to be a simple word'); } return $prefix; }, false, $input->getOption('prefix')); $input->setOption('prefix', $prefix); parent::interact($input, $output); }