Files
yii2/docs/guide-fr/runtime-requests.md
jaaf 53c411ffe1 Added French runtime-requests.md and runtime-responses.md [skip ci] (#12226)
* Corrections dans concept-aliases.md version fr

* Some correction in intro-upgrade-from.md French version

* some corrections in start-databases.md French version

* added translation of structure-applications.md  French version

* adding source change in translation of concept-alias.md

* adding source change in translation of intro-upgrade-from-v1.md

* update master

* added runtime-bootstrapping.md and runtime-routing.md Fr [skip ci]

* some typos [skip ci]

* added runtime-request.md and runtime-response.md FR [skip ci]
2016-08-21 13:51:36 +03:00

7.2 KiB

Requêtes

Les requêtes faites à l'application sont représentées en terme d'objets yii\web\Request qui fournissent des informations telles que les paramètres de requête, les entêtes HTTP, les cookies, etc. Pour une requête donnée, vous avez accès au composant d'applicationrequest qui, par défaut, est une instance de yii\web\Request. Dans cette section, nous décrivons comment utiliser ce composant dans vos applications.

Paramètres de requête

Pour obtenir les paramètres de requête, vous pouvez appeler les méthodes yii\web\Request::get() et yii\web\Request::post() du composant request component. Elles retournent les valeurs de $_GET et $_POST, respectivement. Pas exemple :

$request = Yii::$app->request;

$get = $request->get(); 
// équivalent à : $get = $_GET;

$id = $request->get('id');   
// équivalent à : $id = isset($_GET['id']) ? $_GET['id'] : null;

$id = $request->get('id', 1);   
// équivalent à : $id = isset($_GET['id']) ? $_GET['id'] : 1;

$post = $request->post(); 
// équivalent à : $post = $_POST;

$name = $request->post('name');   
// equivalent to: $name = isset($_POST['name']) ? $_POST['name'] : null;

$name = $request->post('name', '');   
// équivalent à : $name = isset($_POST['name']) ? $_POST['name'] : '';

Info: plutôt que d'accéder directement à $_GET et $_POST pour récupérer les paramètres de requête, il est recommandé de les obtenir via le composant request comme indiqué ci-dessus. Cela rend l'écriture des tests plus facile parce que vous pouvez créer un simulacre de composant request avec des données de requête factices.

Lorsque vous mettez en œuvre des API pleinement REST, vous avez souvent besoin de récupérer les paramètres qui sont soumis via les méthodes de requête PUT, PATCH ou autre . Vous pouvez obtenir ces paramètres en appelant la méthode yii\web\Request::getBodyParam(). par exemple :

$request = Yii::$app->request;

// retourne tous les paramètres
$params = $request->bodyParams;

// retourne le paramètre  "id"
$param = $request->getBodyParam('id');

Info: à la différence des paramètres de GET, les paramètres soumis via POST, PUT, PATCH etc. sont envoyés dans le corps de la requête. Le composant request analyse ces paramètres lorsque vous y accédez via les méthodes décrites ci-dessus. Vous pouvez personnaliser la manière dont ces paramètres sont analysés en configurant la propriété yii\web\Request::parsers.

Méthodes de requête

Vous pouvez obtenir la méthode HTTP utilisée par la requête courante via l'expression Yii::$app->request->method. Un jeu entier de propriétés booléennes est également fourni pour que vous puissiez déterminer le type de la méthode courante. Par exemple : For example,

$request = Yii::$app->request;

if ($request->isAjax) { /* la méthode de requête est requête AJAX */ }
if ($request->isGet)  { /* la méthode de requête est requête GET */ }
if ($request->isPost) { /* la méthode de requête est requête POST */ }
if ($request->isPut)  { /* la méthode de requête est requête PUT */ }

URL de requête

Le composant request fournit plusieurs manières d'inspecter l'URL couramment requise.

En supposant que l'URL requise soit http://example.com/admin/index.php/product?id=100, vous pouvez obtenir différentes parties de cette URL comme c'est résumé ci-dessous :

Enntêtes HTTP

Vous pouvez obtenir les entêtes HTTP via la yii\web\HeaderCollection qui est retournée par la propriété yii\web\Request::headers. Par exemple :

// $headers est un objet   yii\web\HeaderCollection 
$headers = Yii::$app->request->headers;

// retourne la valeur de l'entête  Accept
$accept = $headers->get('Accept');

if ($headers->has('User-Agent')) { /* il existe un entête User-Agent  */ }

Le composant request fournit aussi la prise en charge de l'accès rapide à quelques entêtes couramment utilisés. Cela inclut :

Tip: vous pouvez également utiliser le filtre yii\filters\ContentNegotiator pour déterminer dynamiquement quel type de contenu et quelle langue utiliser dans la réponse. Le filtre met en œuvre la négociation de contenu en plus des propriétés et méthodes décrites ci-dessus.

Informations sur le client

Vous pouvez obtenir le nom d'hôte et l'adresse IP de la machine cliente via yii\web\Request::userHost et yii\web\Request::userIP, respectivement. Par exemple :

$userHost = Yii::$app->request->userHost;
$userIP = Yii::$app->request->userIP;