Skip to content
Gérits Aurélien edited this page Feb 13, 2026 · 1 revision

La classe Request est un utilitaire statique permettant de vérifier l'existence et la provenance des données entrantes. Elle remplace l'utilisation directe et risquée des superglobales ($_GET, $_POST, etc.) en offrant une couche d'abstraction cohérente.

Namespace : Magepattern\Component\HTTP\Request

Usage de base

Toutes les méthodes de cette classe sont statiques. Vous n'avez pas besoin d'instancier la classe pour l'utiliser.

use Magepattern\Component\HTTP\Request;

if (Request::isMethod('POST')) {
    // La requête est de type POST
}

Sécurité & Bonnes pratiques

Encapsulation : Utilisez toujours Request::isPost('key') au lieu de isset($_POST['key']). La classe utilise array_key_exists en interne, ce qui permet de détecter une clé même si sa valeur est null.

Détection HTTPS : isSecure() est compatible avec les serveurs derrière un Load Balancer ou Cloudflare grâce à la détection du header X-Forwarded-Proto.

Liste des Méthodes

Méthode Paramètres Retour Description
isMethod(string) $method bool Vérifie la méthode HTTP (GET, POST, etc.).
isSecure() - bool Vérifie si la connexion est en HTTPS.
isAjax() - bool Détecte si la requête provient d'un appel AJAX.
isGet(string) $key bool Vérifie si la clé existe dans $_GET.
isPost(string) $key bool Vérifie si la clé existe dans $_POST.
isCookie(string) $key bool Vérifie si un cookie est présent.
isSession(string) $key bool Vérifie si une variable de session existe.
isFile(string) $key bool Vérifie si un fichier est en cours d'upload.

Exemples concrets

  1. Filtrage d'une soumission de formulaire
use Magepattern\Component\HTTP\Request;

if (Request::isMethod('POST') && Request::isPost('user_email')) {
    // Procéder au traitement du formulaire
}
  1. Réponse différenciée (API vs HTML)
if (Request::isAjax()) {
    // On renvoie du JSON pour le JavaScript
    echo json_encode($data);
} else {
    // On affiche la page HTML complète
    $this->render('page.html');
}
  1. Vérification de sécurité avant action sensible
if (!Request::isSecure()) {
    die("Erreur : Cette action nécessite une connexion sécurisée HTTPS.");
}

Clone this wiki locally