L3 Info : PHP et Applications Web
 
◃  Ch. 11 Some old Stuff (chapitre non maintenu)  ▹
 

Les controleurs (SF 3.4)

  • Dans le répertoire src/AppBundle/Controller/ on peut ajouter des controleurs gérant des routes associées à des actions.
  • Ainsi la classe HelloWorldController permet de créer un programme Hello World ! dans Symfony :
    namespace AppBundle\Controller;
    
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
    
    class HelloWorldController
    {
    
        /**
         * @Route("/HelloWorld")
         */
        public function helloWorldAction()
        {
             return new Response(
                '<html><body><h1>Hello World !</h1></body></html>'
            );
        }
    
    }
  • La directive @Route définit une URL
  • La méthode d'action associée est un controleur qui renvoie une instance de Response.
  • Symfony offre un système de templates permettant de produire plus efficacement des pages HTML : twig
  • classe HelloWorldController (v2)
    namespace AppBundle\Controller;
    
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    
    class HelloWorldController extends Controller
    {
    
        /**
         * @Route("/HelloWorld")
         */
        public function HelloWorldAction()
        {
             return new Response(
                '<html><body><h1>Hello World !</h1></body></html>'
            );
        }
    
        /**
        * @Route("HelloWorld/mister")
         */
        public function HelloMisterAction()
        {
             $mister = "Fournier";
             return $this->render('HelloWorld/mister.html.twig', array('lastName' => $mister));
        }
    
    }
    
  • Le fichier app/Resources/views/HelloWorld/mister.html.twig :
    {# app/Resources/views/HelloWorld/mister.html.twig #}
    
                <h1>Hello Mister {{ lastName }} !</h1>