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

Symfony 4.x : ce qui change

  • Architecture d'un projet Symfony :
    • config/ pour configurer l'environnement (routes, services, packages)
    • src/ pour le code PHP
    • templates/ pour les twig
    • bin/ les executables nécessaires dont bin/console qui permet notamment de génerer un environnement d'exécution complet
    • var/ pour les fichiers générés automatiquement : logs, sessions , cache
    • vendor/ bibliothèques tiers
    • public/ tout ce qui doit être accessible : css, js, images...
  • Le controleur de base n'est plus défini dans la classe :
    Symfony\Bundle\FrameworkBundle\Controller\Controller mais dans la classe Symfony\Bundle\FrameworkBundle\Controller\AbstractController, il faut en faire hériter nos controleurs pour hériter de ses fonctionnalités, exemple :
    namespace App\Controller;
    
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    
    class HelloWorldController extends AbstractController
    {
    
        /**
         * @Route("/HelloWorld")
         */
        public function HelloWorldAction()
        {
            return new Response(
                '<html><body><h1>Hello World !</h1></body></html>'
            );
        }
    
    } 
  • ...