Faut-il un handler pour chaque form ?
Bonjour,
Je suis sous SF2.3
Pour le moment j'écris plein de
Code:
1 2 3 4 5
| $form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($prod);
$em->flush(); |
Partout dans le controlleur et du coup je me dis y'a mieux à faire.
Donc je pensais faire un handler qui ressemblerait à ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
class MonHandler
{
protected $form;
protected $request;
protected $em;
public function __construct(Form $form, Request $request, EntityManager $em)
{
$this->form = $form;
$this->request = $request;
$this->em = $em;
}
public function process()
{
if( $this->request->getMethod() == 'POST' )
{
$this->form->handleRequest($this->$request);
if( $this->form->isValid() )
{
$this->em->persist($this->form->getData());
$this->em->flush();
return true;
}
}
return false;
}
} |
Je pense que c'est plus propre et que ça s'implifie mon controlleur.
Par contre, faut-il faire un handler par formulaire ? Vu que le code est assez générique, je peut l'utiliser pour plusieurs form ? et Où faut-il créer le fichier ?
Merci de votre aide.