Ricerca…
introduzione
La classe Request di Symfony è una rappresentazione orientata agli oggetti della richiesta HTTP. Contiene informazioni quali URL, stringa di query, file caricati, cookie e altre intestazioni provenienti dal browser.
Sintassi
- $ Request-> getPathInfo (); // restituisce il percorso (parte locale dell'URL) che viene richiesto (ma senza la stringa di query). Vale a dire quando si visita https://example.com/foo/bar?key=value , questo conterrà / foo / bar
- $ Request-> query-> get ( 'id'); // restituisce un parametro stringa di query ($ _GET)
- $ request-> query-> get ('id', 1); // restituisce un parametro stringa di query con un valore predefinito
- $ Request-> request-> get ( 'name'); // restituisce una variabile del corpo della richiesta ($ _POST)
- $ Request-> file-> get ( 'allegato'); // restituisce un'istanza di UploadedFile identificata da "attachment"
- $ Request-> cookies-> get ( 'PHPSESSID'); // restituisce il valore di un cookie ($ _COOKIE)
- $ Request-> headers-> get ( 'content_type'); // restituisce un'intestazione di richiesta HTTP
- $ Request-> getMethod (); // restituisce il metodo di richiesta HTTP (GET, POST, PUT, DELETE, ecc.)
- $ Request-> getLanguages (); // restituisce una matrice di lingue accettate dal client
Ottenere un parametro stringa di query
Diciamo che vogliamo costruire un elenco impaginato di prodotti, in cui il numero della pagina viene passato come parametro di stringa di query. Ad esempio, per recuperare la terza pagina, andresti a:
http://example.com/products?page=3
La richiesta HTTP non elaborata sarebbe simile a questa:
GET /products?page=3 HTTP/1.1
Host: example.com
Accept: text/html
User-Agent: Mozilla/5.0 (Macintosh)
Per ottenere il numero di pagina dall'oggetto richiesta, è possibile accedere alla proprietà della query
:
$page = $request->query->get('page'); // 3
Nel caso di un parametro di page
, probabilmente vorrai passare un valore predefinito nel caso in cui il parametro della stringa di query non sia impostato:
$page = $request->query->get('page', 1);
Ciò significa che quando qualcuno visita http://example.com/products (notare l'assenza della stringa di query), la variabile $page
conterrà il valore predefinito 1
.
Creazione di un oggetto Request da variabili globali
PHP espone un certo numero di variabili globali cosiddette che contengono informazioni sulla richiesta HTTP, come $_POST
, $_GET
, $_FILES
, $_SESSION
, ecc. La classe Request
contiene un metodo statico createFromGlobals()
per istanziare una richiesta oggetto basato su queste variabili:
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
Quando si utilizza il framework Symfony, non è necessario creare un'istanza dell'oggetto request. Invece, dovresti usare l'oggetto che viene istanziato quando il framework è bootstrap in app.php
/ app_dev.php
. Ad esempio digitando l'oggetto richiesta nel controller .
Accesso a una variabile POST
Per ottenere il contenuto di un modulo inviato con method="post"
, utilizzare la proprietà post
:
$name = $request->request->get('name');
Accedere ai contenuti di un cookie
$id = $request->cookies->get('PHPSESSID');
Ciò restituirà il valore del cookie 'PHPSESSID' inviato dal browser.