La requête : l'objet Request

La classe Request encapsule la requête HTTP. Elle fournit une abstraction pour récupérer les informations de la requête indépendamment de la méthode.

Accès à la requête

Il est possible de récupérer l'objet Request dans une classe de contrôleur :

class PostController extends \ActionController  {

    public function doShow() {
        $this->post = Post::findOne( $this->request->getParameters()->getInt( 'id' ) );
    }
}

Il est également d'accéder à la requête via le conteneur IoC :

$request = \IoC::resolve( 'request' );

URI et méthode

Récupération de l'URI de la requête

La méthode getUri retourne l'URI fourni pour accéder à la page :

$uri = $this->request->getUri();

Récupération de la méthode de requête

La méthode getMethod retourne la méthode HTTP (get, post, put, patch, delete) :

if ( $this->request->getMethod() == 'post' ) {
    //traitement post
} else {
    //traitement get
}

Récupérer les paramètres

getParameter retourne un paramètre de la requête HTTP sans appliquer de filtre :

$name = $this->request->getParameter( 'name' );

Le second argument, facultatif, permet de définir une valeur par défaut si le paramètre n'est pas défini.

La méthode hasParameter indique si un paramètre est défini dans requête HTTP.

Ajout d'attributs

  • getAttribute retourne un attribut ajouté à la requête, par exemple un paramètre de route :
$page = $this->request->getAttribute( 'page' );
  • setAttribute permet d'ajouter un attribut à la requête. Cette méthode est généralement utilisée dans les filtres d'interception :
$this->request->setAttribute( 'controller', 'controllers\\HomeController' );