Skip to content

Commit

Permalink
Merge pull request #229 from jmolivas/Issue-170
Browse files Browse the repository at this point in the history
Fix Issue #170
  • Loading branch information
jmolivas committed Oct 31, 2014
2 parents b9771f8 + 7b3d29d commit 5a84526
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 7 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"symfony/console": "2.5.*",
"symfony/finder": "2.5.*",
"symfony/dependency-injection": "2.5.*",
"twig/twig": "1.15.*",
"twig/twig": "1.16.*",
"composer/installers": "~1.0"
},
"require-dev": {
Expand Down
12 changes: 11 additions & 1 deletion src/Command/ContainerAwareCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ public function getConfigStorage(){
return $this->getContainer()->get('config.storage');
}

public function getEntityManager(){
return $this->getContainer()->get('entity.manager');
}

public function validateModuleExist($module_name)
{
return $this->getValidator()->validateModuleExist($module_name, $this->getModules());
Expand Down Expand Up @@ -137,7 +141,13 @@ public function validateClassName($class_name)

public function validateMachineName($machine_name)
{
return $this->getValidator()->validateMachineName($machine_name);
$machine_name = $this->getValidator()->validateMachineName($machine_name);

if ($this->getEntityManager()->hasDefinition($machine_name)) {
throw new \InvalidArgumentException(sprintf('Machine name "%s" is duplicated.', $machine_name));
}

return $machine_name;
}

/**
Expand Down
15 changes: 10 additions & 5 deletions src/Command/GeneratorEntityCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,18 @@ protected function interact(InputInterface $input, OutputInterface $output)
// --entity-name option
$entity_name = $input->getOption('entity-name');
if (!$entity_name) {
$entity_name = $dialog->ask(
$output,
$dialog->getQuestion('Enter the entity name', $machine_name),
$machine_name,
null
$entity_name = $dialog->askAndValidate(
$output,
$dialog->getQuestion('Enter the entity name', $machine_name),
function ($machine_name) {
return $this->validateMachineName($machine_name);
},
false,
$machine_name,
null
);
}

$input->setOption('entity-name', $entity_name);
}

Expand Down

0 comments on commit 5a84526

Please sign in to comment.