Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
code:php:symfony2:bundle [16/02/2016 17:00]
elisabeth [Création]
code:php:symfony2:bundle [15/06/2018 22:22] (Version actuelle)
Ligne 1: Ligne 1:
-====== Création d'un Bundle ​ ======+{{htmlmetatags>​metatag-robots=(index,​follow) metatag-author=(Elisabeth Pointal) metatag-keywords=(Bundle Symfony 2) metatag-description=(Exemples de code avec explications détaillées,​ et visualisation si possible)}}====== Création d'un Bundle ​ ======
 <​note>​La plupart des informations proviennent du tutoriel Openclassroom ​ de Alexandre Bacco : [[https://​openclassrooms.com/​courses/​developpez-votre-site-web-avec-le-framework-symfony2/​symfony2-un-framework-php]],​ très détaillé. Je ne résume ici que les commandes en ligne et syntaxe comme memento.</​note>​ <​note>​La plupart des informations proviennent du tutoriel Openclassroom ​ de Alexandre Bacco : [[https://​openclassrooms.com/​courses/​developpez-votre-site-web-avec-le-framework-symfony2/​symfony2-un-framework-php]],​ très détaillé. Je ne résume ici que les commandes en ligne et syntaxe comme memento.</​note>​
 ===== Création de l'​enveloppe ===== ===== Création de l'​enveloppe =====
Ligne 14: Ligne 14:
 ==== Les modifications réalisées automatiquement ==== ==== Les modifications réalisées automatiquement ====
 Voilà tout ce que nous n'​aurons pas à faire : Voilà tout ce que nous n'​aurons pas à faire :
-  - Ajout du nouveau Bundle dans ''​%%app/​AppKernel.php%%''​ <code php>use Symfony\Component\HttpKernel\Kernel;​+  - Ajout du nouveau Bundle dans ''​%%app/​AppKernel.php%%''​ 
 +<sxh php; first-line:​0;​ highlight: [16]; title: app/​AppKernel.php> 
 +use Symfony\Component\HttpKernel\Kernel;​
 use Symfony\Component\Config\Loader\LoaderInterface;​ use Symfony\Component\Config\Loader\LoaderInterface;​
  
Ligne 30: Ligne 32:
             new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),​             new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),​
             new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),​             new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),​
-            ​//Ajout du nouveau Bundle +            new Machin\TrucBundle\MachinTrucBundle() ​// Ajout du bundle
-            ​new Machin\TrucBundle\MachinTrucBundle() ​ +
-       +
         );         );
  
Ligne 38: Ligne 38:
  
         return $bundles;         return $bundles;
-    }</code>+    } 
 +   </sxh>
    - Ajout du nouveau dans le fichier de routing de l'​application ''​%%app/​config/​routing.yml%%''​ <code yml> ​   machin_truc:​    - Ajout du nouveau dans le fichier de routing de l'​application ''​%%app/​config/​routing.yml%%''​ <code yml> ​   machin_truc:​
         resource: "​@MachinTrucBundle/​Resources/​config/​routing.yml"​         resource: "​@MachinTrucBundle/​Resources/​config/​routing.yml"​
Ligne 47: Ligne 48:
         path:     /​hello/​{name}         path:     /​hello/​{name}
         defaults: { _controller:​ MachinTrucBundle:​Default:​index }</​code>​ C'est dans ce fichier que l'on définit toutes les url relatives aux actions du Controller         defaults: { _controller:​ MachinTrucBundle:​Default:​index }</​code>​ C'est dans ce fichier que l'on définit toutes les url relatives aux actions du Controller
-   - Création d'un controller par défaut ''​%%src/​Machin/​TrucBundle/​Controller/​DefaultController.php%%''​.<​code php>+   - Création d'un controller par défaut ''​%%src/​Machin/​TrucBundle/​Controller/​DefaultController.php%%''​. 
 +<sxh php; first-line: 0; title: DefaultController.php>
 namespace Machin\TrucBundle\Controller;​ namespace Machin\TrucBundle\Controller;​
  
Ligne 59: Ligne 61:
         return new Response(« hello accueil ») ;         return new Response(« hello accueil ») ;
     }     }
-}</code>+} 
 +</sxh>
  
 ===== Syntaxe routing ===== ===== Syntaxe routing =====
Ligne 81: Ligne 84:
 </​code>​ </​code>​
 C'est ainsi que aussi, que je peux générer une url dans un controller: C'est ainsi que aussi, que je peux générer une url dans un controller:
-<code php>+<sxh php; first-line:​32;​ title:​DefaultController.php>
   $url = $this->​get('​router'​)->​generate(   $url = $this->​get('​router'​)->​generate(
         '​machin_truc_add', ​       // 1er argument : le nom de la route         '​machin_truc_add', ​       // 1er argument : le nom de la route
Ligne 89: Ligne 92:
     // $url relative vaut « /truc/add/5 »     // $url relative vaut « /truc/add/5 »
     return $this->​redirect($url);​     return $this->​redirect($url);​
- +</sxh>
-</code>+
  
  
Ligne 97: Ligne 99:
 ==== Request ==== ==== Request ====
 Dans le controller, on accède aux données de la requête (http) : Dans le controller, on accède aux données de la requête (http) :
-<code php>​$request = $this->​getRequest();</​code>+<sxh php;>​$request = $this->​getRequest();</​sxh>
 Il est toutefois conseiller de la passer en argument de l'​action en précisant son type Request comme ci-dessous. Il est toutefois conseiller de la passer en argument de l'​action en précisant son type Request comme ci-dessous.
  
-<code php>+<sxh php; first-line:​0;​ title:​BiduleController.php>
 //​src/​Machin/​TrucBundle/​Controller/​BiduleController.php //​src/​Machin/​TrucBundle/​Controller/​BiduleController.php
 namespace Machin\TrucBundle\Controller;​ namespace Machin\TrucBundle\Controller;​
Ligne 124: Ligne 126:
     }     }
 } }
-</code>+</sxh>
 ==== Response ==== ==== Response ====
-Ne pas publier ​d'​ajouter au dessus de la classe les classes utilisées +Ne pas oublier ​d'​ajouter au dessus de la classe les classes utilisées 
-<code php>+<sxh php;>
 use Symfony\Component\HttpFoundation\Response;​ use Symfony\Component\HttpFoundation\Response;​
 use Symfony\Component\HttpFoundation\RedirectResponse;​ use Symfony\Component\HttpFoundation\RedirectResponse;​
 ... ...
-</code>+</sxh>
 Ensuite, on tous les types de réponses text, html, json, ... Ensuite, on tous les types de réponses text, html, json, ...
-<code php>+<sxh php; first-line:​98>
 //banal //banal
  ​$response = new Response("​Hello"​);​  ​$response = new Response("​Hello"​);​
Ligne 159: Ligne 161:
 // et aussi biensur on peut envoyer les données dans un template // et aussi biensur on peut envoyer les données dans un template
  $this ->​render('​MachinTrucBundle:​Bidule:​add.html.twig',​$data);​  $this ->​render('​MachinTrucBundle:​Bidule:​add.html.twig',​$data);​
-</code>+</sxh>
  
 [[code:​php:​symfony2:​twig|Suite Twig]] [[code:​php:​symfony2:​twig|Suite Twig]]