FuelPHP - Demandes et réponses

La requête HTTP et la réponse HTTP jouent un rôle important dans toute application Web. Nous devons obtenir les détails complets de la requête http pour la traiter correctement. Une fois traitées, nous devons envoyer les données traitées au client via une réponse http.

FuelPHP fournit une excellente Request et Responseclasse pour lire et écrire respectivement la requête HTTP et la réponse HTTP. Apprenons les deuxRequest et Response classe dans ce chapitre.

Demande

Dans une application Web typique, l'application doit analyser les détails de la demande en cours. La classe Request fournit des méthodes simples pour analyser la demande en cours à traiter par l'application. Request fournit également une option pour créer une nouvelle demande en agissant en tant que client http.

La création d'une nouvelle demande permet à l'application de demander une autre partie de l'application ou entièrement une autre application et d'afficher le résultat. Apprenons à analyser la requête entrante dans ce chapitre et apprenons à créer une nouvelle requête dans le chapitre Requête HMVC.

Analyse d'une requête

La classe Request fournit trois méthodes pour obtenir les détails de la requête http. Ils sont comme suit,

active - C'est une méthode statique, qui renvoie la requête http active actuelle.

$currentRequest = Request::active();

param - Il renvoie la valeur du paramètre spécifié. Il contient deux arguments. Le premier argument est le nom du paramètre et le deuxième argument est la valeur à renvoyer, si le paramètre n'est pas disponible dans la requête http actuelle.

$param = Request::active()->param('employee_name', 'none');

params - C'est la même chose que param sauf qu'il renvoie tous les paramètres sous forme de tableau.

$params = Request::active()->params();

Exemple

Créons un formulaire simple et traitons le formulaire en utilisant la classe de requête.

Step 1- Créez une nouvelle action, action_request dans le contrôleur des employés.

public function action_request() {
}

Step 2 - Appelez les méthodes de requête pour obtenir tous les paramètres de la requête en cours.

public function action_request() {
   $params = Request::active()->params();
}

Step 3 - Vider le tableau de paramètres récupéré.

public function action_request() {
   $params = Request::active()->params();
   echo dump($params);
}

Step 4- Modifiez le routage pour inclure les paramètres dans le fichier de configuration de la route, fuel / app / config / routes.php

'employee/request(/:name)?' => array('employee/request', 'name' => 'name'),

Maintenant, en demandant la nouvelle action, http: // localhost: 8080 / employee / request / Jon , il affichera la réponse suivante.

Réponse

La classe Response fournit des options pour créer une réponse http. Par défaut, nous n'avons pas besoin d'utiliser une classe de réponse directement dans la plupart des situations. Au lieu de cela, nous utilisons View (que nous apprendrons dans le chapitre suivant) pour créer une réponse http. View masque la réponse http du développeur et envoie la réponse au client à l'aide de la classe Response sous-jacente . Dans une situation avancée, nous utilisons directement la classe Response et créons une réponse http complète.

Créer une réponse

La réponse se compose d'en-têtes et de corps. L'en-tête principal est le code d'état http. Les codes d'état HTTP sont des codes standard définis dans le protocole HTTP pour décrire la réponse. Par exemple, un code d'état 200 signifie que la demande est réussie.

La classe Response fournit trois arguments pour créer la réponse http,

  • $body - corps de la réponse http
  • $status_code - code d'état de la réponse http
  • $headers - en-têtes optionnels comme tableau
$body = "Hi, FuelPHP";
$headers = array (
   'Content-Type' => 'text/html',
);
$response = new Response($body, 200, $headers);

Créons une nouvelle action, action_response dans le contrôleur d'employé comme suit.

public function action_response() {
   $body = "Hi, FuelPHP";
   $headers = array (
      'Content-Type' => 'text/html',
   );
   $response = new Response($body, 200, $headers);
   return $response;
}

Résultat

Méthodes

La classe Response fournit de nombreuses méthodes pour manipuler les réponses http. Ils sont comme suit,

forge - C'est le même que le constructeur de classe de réponse comme vu ci-dessus.

return Response::forge("Hi, FuelPHP", 404);

redirect- Il offre la possibilité de rediriger vers une URL au lieu d'envoyer une réponse. Il contient les arguments suivants,

a.url- URL de destination b. method - méthodes de redirection. location (par défaut) et actualiser c.redirect_code - code d'état http. La valeur par défaut est 302.

// use a URL
Response::redirect('http://some-domain/index', 'refresh');
// or use a relative URI
Response::redirect('employee/list');

redirect_back- Elle est similaire à la méthode de redirection, sauf qu'elle redirige vers la page précédente. Nous pouvons spécifier la page de redirection, si aucune page arrière n'est disponible.

// If there is no back page, go to the employee list page
Response::redirect_back('/employee/list', 'refresh');

set_status - Il fournit une option pour définir le code d'état http.

$response = new Response();
$response->set_status(404);

set_header - Il fournit une option pour définir les en-têtes http.

$response = new Response();
$response->set_header('Content-Type', 'application/pdf');
// replace previous value using third arguments
$response->set_header('Content-Type', 'application/pdf', 'text/plain');

set_headers- Il est identique à set_header sauf qu'il fournit une option pour définir plusieurs en-têtes à l'aide de array.

$response = new Response();
$response->set_headers(array
   'Content-Type' => 'application/pdf',
   'Pragma' => 'no-cache',
));

get_header - Il permet d'obtenir les détails d'en-tête de l'ensemble précédent.

$response = new Response();
$response->set_header('Pragma', 'no-cache');
// returns 'no-cache'
$header = $response->get_header('Pragma');
// returns array('Pragma' => 'no-cache')
$header = $response->get_header();

body - Il fournit une option pour définir le corps de la réponse http.

$response = new Response();
$response->body('Hi, FuelPHP');
// returns 'Hi, FuelPHP'
$body = $response->body();

send_headers- Il envoie les en-têtes au client demandé. FuelPHP utilise cette méthode pour envoyer la réponse au client. Normalement, nous n'avons pas besoin d'utiliser cette méthode.

$response->send_headers();

Send - Identique à send_headers sauf que les en-têtes peuvent être restreints dans la réponse http.

// send the headers as well
$response->send(true);
// only send the body
$response->send(false);
$response->send();