Use manipuladores de formulário no symfony2

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)
}