1
+ <?php
2
+
3
+ namespace AppBundle \Controller ;
4
+
5
+ use AppBundle \Facade \MessageFacade ;
6
+ use AppBundle \FormType \ContactFormType ;
7
+ use AppBundle \FormType \VO \MessageVO ;
8
+ use Sensio \Bundle \FrameworkExtraBundle \Configuration \Route ;
9
+ use Sensio \Bundle \FrameworkExtraBundle \Configuration \Template ;
10
+ use Symfony \Component \Form \FormFactory ;
11
+ use Symfony \Component \HttpFoundation \Request ;
12
+
13
+ /**
14
+ * @Route(service="app.controller.contact_controller")
15
+ */
16
+ class ContactController
17
+ {
18
+ /** @var FormFactory */
19
+ private $ formFactory ;
20
+
21
+ /** @var MessageFacade */
22
+ private $ messageFacade ;
23
+
24
+ /**
25
+ * @param FormFactory $formFactory
26
+ * @param MessageFacade $messageFacade
27
+ */
28
+ public function __construct (FormFactory $ formFactory , MessageFacade $ messageFacade )
29
+ {
30
+ $ this ->formFactory = $ formFactory ;
31
+ $ this ->messageFacade = $ messageFacade ;
32
+ }
33
+
34
+ /**
35
+ * @Route("/contact", name="contact")
36
+ * @Template("contact/contact.html.twig")
37
+ */
38
+ public function contactAction (Request $ request )
39
+ {
40
+ $ messageVO = new MessageVO ();
41
+ $ form = $ this ->formFactory ->create (ContactFormType::class, $ messageVO );
42
+
43
+ $ form ->handleRequest ($ request );
44
+ if ($ form ->isSubmitted () && $ form ->isValid ()) {
45
+ $ this ->messageFacade ->save ($ messageVO );
46
+ }
47
+
48
+ return [
49
+ "form " => $ form ->createView ()
50
+ ];
51
+ }
52
+ }
0 commit comments