Evite poluir seus controladores com lógica de manipulação de formulários, criando um manipulador de formulários como FooBundle/Form/Handler/RegisterHandler.php
.
Então, em seu controlador:
if ($handler->process($form)) {
// success
} else {
// fail
}
ou
$foo = $handler->process($form);
if ($foo === true) {
// success
} else {
// fail - $foo contains something useful (e.g. why it failed)
}
ou configure o serviço para retornar um novo objeto cada vez que for usado e:
if ($handler->process($form)) {
// success
} else {
// fail - $handler->getBar(); contains something useful (e.g. why it failed)
}