Dans ce chapitre nous allons voir comment organiser les fichiers et la logique de notre application.

Le principe du router

En général on va chercher à rediriger toutes les requêtes vers un fichier index.php qui servira de carrefour, et qui inclura les bons fichiers en fonction de l'URL. Cette logique peut être écrite à la main où on peut se reposer sur une librairie pour gérer les fichiers à inclure en fonction du chemin.

Par exemple avec AltoRouter :

require '../vendor/autoload.php';
$uri = $_SERVER['REQUEST_URI'];
$router = new AltoRouter();

$router->map('GET', '/', 'home');
$router->map('GET', '/contact', 'contact', 'contact');
$router->map('GET', '/blog/[*:slug]-[i:id]', 'blog/article', 'article');

$match = $router->match();

require '../elements/header.php';
if (is_array($match)) {
$params = $match['params'];
require "../templates/{$match['target']}.php";
} else {
require "../templates/404.php";
}
require '../elements/footer.php';

Dans cette vidéo j'utilise la version 1.2 d'AltoRouter, vous pouvez installer la même version que moi à l'aide de la commande require de composer.

composer require altorouter/altorouter:1.2.0