Dynamic-Mess.com


"The world is a dynamic mess of jiggling things..."

Contrôleurs : Manipuler les requêtes avec Symfony 2

Article posté le 26-08-2014 dans la catégorie PHP

Sous Symfony, vous aurez certainement besoin de récuperer des éléments provenance de la requête HTTP du client.

Paramètres dans l'URL

Il existe deux types de paamètres :

Dans la route

exemple :

http://www.monsite.com/video/id

Pour récuperer le paramètre id, il faut paramétrer le contrôleur. Au format yaml, cela donne ceci :

path:     /videos/{id}
    defaults: { _controller: MonSiteBundle:Default:voir }
    requirements :
        id:  \d{1,}

Rappel : pour le décalage à droite, on utilise 4 espaces et non pas une tabulation.

Rappel 2 : En mode développement, vous devez utiliser l'url suivante : 

http://multimedia.dev/app_dev.php/video/id

Ici, on met un filtre sur id : il doit être de type numérique, au moins un chiffre. Si on avait voulu limiter à un certain nombre de chiffre, on aurait par exemple fait :

\d{4}

Hors route

exemple : http://www.monsite.com/video?id=4

Pour récuperer la requête, il vous suffit de faire :

$request = $this->getRequest();

Puis on récupère le paramètre souhaité :

$id = $request->query->get('id');

Connaître le type de la requête

Pour connaître le type de la requête, il suffit d'utiliser une méthode et comparer la valeur qu'elle retourne : getMethod():

if( $request->getMethod() == 'POST' ) //Requête de type GET
{
 
}

Obtenir les variables de type POST

request->get('Nom') //Où Nom est un champ du formulaire de la requête POST

Variables de cookie

cookies->get('id'); //Champ 'id' du cookie


Variables de serveur

server->get('REQUEST_URI'); //Recupérer l'URI


Variables d'entête

headers->get('USER_AGENT'); //Récupérer le navigateur du client 

Tweet
comments powered by Disqus