FuelPHP - Richieste e risposte

La richiesta HTTP e la risposta HTTP svolgono un ruolo importante in qualsiasi applicazione web. Dobbiamo ottenere i dettagli completi della richiesta http per elaborarla correttamente. Una volta elaborati, dobbiamo inviare i dati elaborati al client tramite risposta http.

FuelPHP fornisce eccellenti Request e Responseclasse per leggere e scrivere rispettivamente la richiesta HTTP e la risposta HTTP. Impariamo entrambiRequest e Response classe in questo capitolo.

Richiesta

In una tipica applicazione web, l'applicazione deve analizzare i dettagli della richiesta corrente. La classe Request fornisce metodi semplici per analizzare la richiesta corrente che deve essere elaborata dall'applicazione. Richiesta fornisce anche un'opzione per creare una nuova richiesta agendo come un client http.

La creazione di una nuova richiesta consente all'applicazione di richiedere un'altra parte dell'applicazione o interamente un'altra applicazione e mostrare il risultato. Impariamo come analizzare la richiesta in arrivo in questo capitolo e impariamo come creare una nuova richiesta nel capitolo Richiesta HMVC.

Analisi di una richiesta

La classe Request fornisce tre metodi per ottenere i dettagli della richiesta http. Sono i seguenti,

active - È un metodo statico, che restituisce la richiesta http attiva corrente.

$currentRequest = Request::active();

param - Restituisce il valore del parametro specificato. Contiene due argomenti. Il primo argomento è il nome del parametro e il secondo è il valore da restituire, se il parametro non è disponibile nella richiesta http corrente.

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

params - È uguale a param tranne che restituisce tutti i parametri come un array.

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

Esempio

Creiamo un semplice modulo ed elaboriamo il modulo utilizzando la classe di richiesta.

Step 1- Crea una nuova azione, action_request nel controller dei dipendenti.

public function action_request() {
}

Step 2 - Chiama i metodi di richiesta per ottenere tutti i parametri della richiesta corrente.

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

Step 3 - Scarica l'array di parametri recuperati.

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

Step 4- Modificare il percorso per includere i parametri nel file di configurazione del percorso, fuel / app / config / routes.php

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

Ora, richiedendo la nuova azione, http: // localhost: 8080 / dipendente / richiesta / Jon , mostrerà la seguente risposta.

Risposta

La classe di risposta fornisce le opzioni per creare una risposta http. Per impostazione predefinita, non è necessario utilizzare una classe di risposta direttamente nella maggior parte delle situazioni. Invece, usiamo View (che impareremo nel prossimo capitolo) per creare una risposta http. Visualizza nasconde la risposta http dallo sviluppatore e invia la risposta al client utilizzando la classe di risposta sottostante . In una situazione avanzata, utilizziamo direttamente la classe Response e creiamo una risposta http completa.

Creazione di una risposta

La risposta è composta da intestazioni e corpo. L'intestazione principale è il codice di stato http. I codici di stato HTTP sono codici standard definiti nel protocollo HTTP per descrivere la risposta. Ad esempio, un codice di stato, 200 significa che la richiesta è riuscita.

La classe di risposta fornisce tre argomenti per creare la risposta http,

  • $body - corpo della risposta http
  • $status_code - codice di stato della risposta http
  • $headers - intestazioni opzionali come array
$body = "Hi, FuelPHP";
$headers = array (
   'Content-Type' => 'text/html',
);
$response = new Response($body, 200, $headers);

Creiamo una nuova azione, action_response nel controller dei dipendenti come segue.

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

Risultato

Metodi

La classe di risposta fornisce molti metodi per manipolare le risposte http. Sono i seguenti,

forge - È lo stesso del costruttore della classe di risposta come visto sopra.

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

redirect- Fornisce l'opzione per reindirizzare a un URL invece di inviare una risposta. Contiene i seguenti argomenti,

a.url- URL di destinazione b. metodo - metodi di reindirizzamento. location (impostazione predefinita) e aggiorna c.redirect_code - codice di stato http. Il valore predefinito è 302.

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

redirect_back- È simile al metodo di reindirizzamento tranne che reindirizza alla pagina precedente. Possiamo specificare la pagina di reindirizzamento, se non è disponibile alcuna pagina posteriore.

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

set_status - Fornisce un'opzione per impostare il codice di stato http.

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

set_header - Fornisce un'opzione per impostare le intestazioni 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- È uguale a set_header tranne che fornisce un'opzione per impostare più intestazioni utilizzando array.

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

get_header - Consente di ottenere i dettagli dell'intestazione impostata in precedenza.

$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 - Fornisce un'opzione per impostare il corpo della risposta http.

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

send_headers- Invia le intestazioni al client richiesto. FuelPHP utilizza questo metodo per inviare la risposta al client. Normalmente, non è necessario utilizzare questo metodo.

$response->send_headers();

Send - Uguale a send_headers tranne per il fatto che le intestazioni possono essere limitate nella risposta http.

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