Recherche…


Introduction

La classe Request de Symfony est une représentation orientée objet de la requête HTTP. Il contient des informations telles que l'URL, la chaîne de requête, les fichiers téléchargés, les cookies et autres en-têtes provenant du navigateur.

Syntaxe

  • $ request-> getPathInfo (); // renvoie le chemin d'accès (partie locale de l'URL) demandé (mais sans la chaîne de requête). C'est-à-dire lorsque vous visitez https://example.com/foo/bar?key=value , cela contiendra / foo / bar
  • $ request-> query-> get ('id'); // retourne un paramètre de chaîne de requête ($ _GET)
  • $ request-> query-> get ('id', 1); // retourne un paramètre de chaîne de requête avec une valeur par défaut
  • $ request-> request-> get ('name'); // retourne une variable de corps de requête ($ _POST)
  • $ request-> files-> get ('pièce jointe'); // renvoie une instance de UploadedFile identifiée par "pièce jointe"
  • $ request-> cookies-> get ('PHPSESSID'); // retourne la valeur d'un cookie ($ _COOKIE)
  • $ request-> headers-> get ('content_type'); // retourne un en-tête de requête HTTP
  • $ request-> getMethod (); // renvoie la méthode de requête HTTP (GET, POST, PUT, DELETE, etc.)
  • $ request-> getLanguages ​​(); // retourne un tableau de langues que le client accepte

Obtenir un paramètre de chaîne de requête

Disons que nous voulons créer une liste paginée de produits, où le numéro de la page est transmis en tant que paramètre de chaîne de requête. Par exemple, pour récupérer la 3ème page, vous devez aller à:

http://example.com/products?page=3

La requête HTTP brute ressemblerait à ceci:

GET /products?page=3 HTTP/1.1
Host: example.com
Accept: text/html
User-Agent: Mozilla/5.0 (Macintosh)

Pour obtenir le numéro de page de l'objet de requête, vous pouvez accéder à la propriété query :

$page = $request->query->get('page'); // 3

Dans le cas d'un paramètre de page , vous souhaiterez probablement passer une valeur par défaut si le paramètre de chaîne de requête n'est pas défini:

$page = $request->query->get('page', 1);

Cela signifie que lorsque quelqu'un visite http://example.com/products (notez l'absence de la chaîne de requête), la variable $page contiendra la valeur par défaut 1 .

Création d'un objet Request à partir de variables globales

PHP expose un certain nombre de variables dites globales contenant des informations sur la requête HTTP, telles que $_POST , $_GET , $_FILES , $_SESSION , etc. La classe Request contient une createFromGlobals() static createFromGlobals() pour instancier une requête objet basé sur ces variables:

use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();

Lorsque vous utilisez le framework Symfony, vous ne devez pas instancier l'objet de requête vous-même. Au lieu de cela, vous devez utiliser l'objet instancié lorsque le framework est démarré dans app.php / app_dev.php . Par exemple, par type, en indiquant l'objet de requête dans votre contrôleur .

Accéder à une variable POST

Pour obtenir le contenu d'un formulaire soumis avec method="post" , utilisez la propriété post :

$name = $request->request->get('name');
$id = $request->cookies->get('PHPSESSID');

Cela retournera la valeur du cookie 'PHPSESSID' envoyé par le navigateur.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow