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

La classe Url est un composant essentiel pour la gestion du routage et du SEO. Elle permet de récupérer l'URL courante de manière sécurisée (détection HTTPS/Proxy) et de générer des Slugs (URLs simplifiées) à partir de chaînes de caractères complexes ou accentuées.

Namespace : Magepattern\Component\HTTP\Url

Liste des méthodes principales

Méthode Paramètres Retour Description
current() bool $withQuery string Récupère l'URL absolue (compatible HTTPS & Proxies).
clean() $str, $options string Transforme une chaîne brute en URL propre (Slug).
shortClean() string $str string Version légère pour les tags ou identifiants simples.
stripHostURL() string $url string Extrait uniquement le chemin (path) d'une URL complète.
resolve() ?string $path string Convertit un chemin relatif en URL absolue.

Usage : Génération de Slugs (SEO) La méthode clean() transforme n'importe quelle chaîne en une URL lisible par les moteurs de recherche.

Exemple de configuration

use Magepattern\Component\HTTP\Url;

$input = "C'est l'été & le soleil brille.01 !";

// Configuration personnalisée
$options = [
    'dot'       => 'display', // Conserve le point (ex: pour les versions 1.0)
    'ampersand' => 'strict'  // Transforme & en & (Standard W3C)
];

echo Url::clean($input, $options);
// Résultat (code source) : cest-lete-&-le-soleil-brille.01

Paramètres de $options

dot : 'none' (par défaut, supprime le point) ou 'display'.

ampersand :

'none' : Remplace & par un tiret -.

'strict' : Remplace & par l'entité HTML &.

Chaîne libre : Remplace par la valeur fournie (ex: 'et').

cspec / rspec : Permet d'ajouter vos propres expressions régulières de nettoyage et leurs remplacements.

Détection d'environnement (HTTPS & Proxy)

Contrairement à une détection classique, la méthode current() vérifie les en-têtes de transfert (X-Forwarded-Proto). C'est indispensable si votre site est derrière un Load Balancer, Nginx Reverse Proxy ou Cloudflare.

// URL actuelle complète avec paramètres GET
$fullUrl = Url::current(true); 

// URL sans la Query String (?id=...)
$baseUrl = Url::current(false);

Clone this wiki locally