Les bases
Travaux pratiques
L'objet
Exercices
Travaux Pratique 2
Le routeur
18 min
Listing d'articles23-08-2019 12:00:00, ou devenir premium
24 min
Pagination24-08-2019 12:00:00, ou devenir premium
16 min
Simplifions la gestion de l'URL25-08-2019 12:00:00, ou devenir premium
20 min
Page article26-08-2019 12:00:00, ou devenir premium
23 min
Page catégorie27-08-2019 12:00:00, ou devenir premium
10 min
Réorganisation de la pagination28-08-2019 12:00:00, ou devenir premium
29 min
Affichage des catégories sur le listing29-08-2019 12:00:00, ou devenir premium
30 min
Création de la classe Table31-08-2019 12:00:00, ou devenir premium
34 min
Administration du site01-09-2019 12:00:00, ou devenir premium
23 min
Edition d'un article02-09-2019 12:00:00, ou devenir premium
30 min
Gestion des formulaires03-09-2019 12:00:00, ou devenir premium
24 min
Valider les données04-09-2019 12:00:00, ou devenir premium
23 min
Création d'un article05-09-2019 12:00:00, ou devenir premium
19 min
Gestion des catégories06-09-2019 12:00:00, ou devenir premium
35 min
Liaison article catégorie07-09-2019 12:00:00, ou devenir premium
31 min
Authentification08-09-2019 12:00:00, ou devenir premium
32 min

Dans le chapitre précédent on a passé un certain temps à gérer le contrôle des paramètres (afin de vérifier que ?page est bien un entier). Afin de ne pas avoir à écrire cette logique encore et encore nous allons créer une méthode statique qui nous permettra d'obtenir facilement des paramètre "filtrés".

Aussi, on ne souhaite pas voir le paramètre ?page=1 dans l'URL (le paramètre est inutile et peut créer du duplicate). On gère donc cela dès l'entrée de notre application.

if (isset($_GET['page']) && $_GET['page'] === '1') {
    $url = explode('?', $_SERVER['REQUEST_URI'])[0];
    unset($_GET['page']);
    $query = http_build_query($_GET);
    $url = $url . (empty($query) ? '' : '?' . $query);
    header('Location: ' . $url);
    http_response_code(301);
    exit();
}

Ce code permet de mettre une contrainte globale sur toute l'application et permet d'éviter d'avoir à se soucier du problème par la suite.