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
prog:symfony:routage:routes [27/10/2019 17:30]
thierry [Récuperer une variable depuis le path de l'Url]
prog:symfony:routage:routes [11/09/2022 19:49] (Version actuelle)
thierry ↷ Page déplacée de prog:symfony:routes:routes à prog:symfony:routage:routes
Ligne 1: Ligne 1:
 ====== Les Routes dans Symfony ====== ====== Les Routes dans Symfony ======
-===== En Annotations ​=====+===== Routage ===== 
 + 
 +==== En Annotations ====
 <code php> <code php>
 ... ...
Ligne 11: Ligne 13:
  
 </​code>​ </​code>​
-===== Récuperer une variable depuis le path de l'​Url ​=====+==== Récuperer une variable depuis le path de l'Url ====
 Dans l'​exemple ci dessous on récupére la variable {proj} contenue dans la route. Dans l'​exemple ci dessous on récupére la variable {proj} contenue dans la route.
  
Ligne 25: Ligne 27:
 </​code>​ </​code>​
  
-===== Route differentes ​en fonction de la méthord GET POST etc... =====+==== Routage ​en fonction de la méthord GET POST etc... ==== 
 +Dans le code ci dessous, si l'​appel est fait en ''​GET''​ on exécute la function **check()**  
 + 
 +si l'​appel est fait en ''​POST''​ ou ''​PUT''​ on exécute la function **add_project()**
 <code php> <code php>
    class MonController extends AbstractController    class MonController extends AbstractController
Ligne 36: Ligne 41:
  
       /**       /**
-      * @Route("/​api/​checkv",​ name="​api_addProj",​ methods={"​POST","​PUT"​,})+      * @Route("/​api/​checkv",​ name="​api_addProj",​ methods={"​POST","​PUT"​})
       */       */
       public function add_project(Request $request, SerializerInterface $serializer )       public function add_project(Request $request, SerializerInterface $serializer )
Ligne 43: Ligne 48:
  
 </​code>​ </​code>​
 +===== Générer des routes =====
 +==== Dans un Controller ====
 +Grâce a la méthode ''​generateUrl''​ de la classe AbstractController et ses descendants.
 +<code php vendor\symfony\framework-bundle\Controller\ControllerTrait.php>​
 +protected function generateUrl(string $route, array $parameters = [], int $referenceType = UrlGeneratorInterface::​ABSOLUTE_PATH):​ string</​code>​
 +Avec les parametres :
 +  * string ''​$route'' ​ : Le nom de la route a generer.
 +  * array ''​$parameters''​ : les parametre a remplacer dans le nom de la route.
 +  * integer ''​$referenceType''​ : Peut prendre les valeurs...
 +    * ''​ABSOLUTE_URL''​ : Generates an absolute URL, e.g. "​http://​example.com/​dir/​file"​.
 +    * ''​ABSOLUTE_PATH''​ : Generates an absolute path, e.g. "/​dir/​file"​.
 +    * ''​RELATIVE_PATH''​ : Generates a relative path based on the current request path, e.g. "​../​parent-file"​. ​ (@see UrlGenerator::​getRelativePath())
 +    *  ''​NETWORK_PATH''​ : Generates a network path, e.g. "/ /​example.com/​dir/​file"​. Such reference reuses the current scheme but specifies the host.
 +
 +Exemple :
 +
 +<​code>​
 +...
 +@Route("/​api/​checkv/​{projname}",​ name="​check_version",​ methods={"​GET"​})
 +...
 +$location = $this->​generateUrl('​check_version',​ ['​projname'​ => '​ProjectTest'​],​UrlGeneratorInterface::​ABSOLUTE_URL);​
 +...
 +Résultat:
 +http://​127.0.0.1:​8000/​api/​checkv/​ProjectTest
 +</​code>​
 +