Route CodeIgniter 4 : Guide complet pour comprendre le routage

Accueil PHP 8 Route CodeIgniter 4 : Guide complet pour comprendre le routage

Lorsque l’on développe une application web avec le framework CodeIgniter 4, il est essentiel de bien comprendre le fonctionnement d’une route avec CodeIgniter 4.

Pourquoi ? Parce qu’une route définit comment une URL est interprétée et reliée aux contrôleurs. Elle est le cœur de la navigation dans votre projet, et leur bonne maîtrise garantit un code propre, sécurisé et facilement maintenable.

Dans ce tutoriel, nous allons explorer en profondeur les routes avec CodeIgniter 4, avec des exemples concrets, des astuces pratiques et une approche pensée pour les débutants. Que vous développiez un petit site vitrine ou une application complexe, vous verrez qu’une bonne gestion des routes vous fera gagner un temps précieux.

Qu’est-ce qu’une route avec CodeIgniter 4 ?

Une route avec CodeIgniter 4 est tout simplement une règle qui indique au framework quel contrôleur et quelle méthode doivent être exécutés lorsqu’un utilisateur visite une URL spécifique.

Par exemple, si un internaute visite monsite.com/contact, les routes avec CodeIgniter 4 vont déterminer s’il faut exécuter ContactController::index() ou une autre méthode.

Exemple de base :

$routes->get('contact', 'ContactController::index');

Ici, la route contact est reliée à la méthode index() du contrôleur ContactController.

Où sont définies les routes avec CodeIgniter 4 ?

Par défaut, les routes avec CodeIgniter 4 se définissent dans le fichier suivant :

app/Config/Routes.php

C’est dans ce fichier que vous allez enregistrer toutes vos règles de routage. Il est automatiquement chargé par CodeIgniter 4 au lancement de l’application.

Exemple simple : créer une route avec CodeIgniter 4 pour un site vitrine

Imaginons que vous développiez un site vitrine avec trois pages :

  • Accueil
  • À propos
  • Contact

Voici comment vous pourriez configurer vos routes avec CodeIgniter 4 :

$routes->get('/', 'HomeController::index');
$routes->get('a-propos', 'PagesController::about');
$routes->get('contact', 'PagesController::contact');

Grâce à ces routes avec CodeIgniter 4, vous contrôlez l’accès à chaque page depuis une URL conviviale.

Les différents types de routes

Les routes avec CodeIgniter 4 permettent plusieurs types de requêtes HTTP. En voici les principales :

MéthodeUsage
get()Pour afficher une page (requête GET)
post()Pour envoyer des données via un formulaire
add()Accepte toutes les méthodes HTTP
match(['get', 'post'], ...)Pour combiner plusieurs méthodes

Exemple :

$routes->post('envoyer-contact', 'ContactController::submitForm');

Ici, la route est exécutée uniquement lorsqu’un formulaire est soumis en POST.

Paramètres dynamiques dans les routes avec CodeIgniter 4

Les routes avec CodeIgniter 4 peuvent inclure des paramètres dynamiques. Cela permet de transmettre des valeurs directement via l’URL.

Exemple :

$routes->get('article/(:num)', 'BlogController::article/$1');

Cela signifie que l’URL article/12 exécutera BlogController::article(12).

Autres types de filtres possibles :

  • (:num) : un entier
  • (:any) : tout caractère
  • (:segment) : un segment d’URL
  • (:alpha) : uniquement des lettres
  • (:alphanum) : lettres et chiffres

Ces fonctionnalités rendent les routes avec CodeIgniter 4 extrêmement puissantes.

Sécuriser ses routes avec CodeIgniter 4 grâce aux filtres

Il est possible d’ajouter des filtres aux routes avec CodeIgniter 4 pour, par exemple, protéger certaines pages derrière une authentification.

Exemple avec un filtre auth :

$routes->get('admin', 'AdminController::index', ['filter' => 'auth']);

Grâce à cette méthode, seules les personnes connectées peuvent accéder à l’administration.

Cas concret : gérer un blog avec des routes avec CodeIgniter 4

Imaginons que vous construisiez un blog avec les fonctionnalités suivantes :

Voici un exemple de configuration des routes avec CodeIgniter 4 :

// Page d'accueil du blog
$routes->get('/', 'BlogController::index');

// Voir un article
$routes->get('article/(:num)', 'BlogController::show/$1');

// Admin : ajouter un article
$routes->get('admin/article/create', 'Admin\ArticleController::create', ['filter' => 'auth']);
$routes->post('admin/article/save', 'Admin\ArticleController::save', ['filter' => 'auth']);

// Admin : modifier un article
$routes->get('admin/article/edit/(:num)', 'Admin\ArticleController::edit/$1', ['filter' => 'auth']);
$routes->post('admin/article/update/(:num)', 'Admin\ArticleController::update/$1', ['filter' => 'auth']);

Cet exemple vous montre comment tirer pleinement parti des routes avec CodeIgniter 4 dans un projet réel.

Utiliser le routage automatique (auto-routing)

CodeIgniter 4 propose une option de routage automatique. Cela signifie que vous n’avez pas besoin de déclarer chaque route manuellement.

Il suffit de respecter cette structure dans vos URL :

/nom-du-contrôleur/nom-de-la-méthode

Mais attention ! Ce mode est désactivé par défaut pour des raisons de sécurité. Si vous l’activez dans app/Config/Feature.php, veillez à l’utiliser prudemment.

Rediriger une route avec CodeIgniter 4

Vous pouvez également rediriger une route vers une autre :

$routes->get('ancienne-page', function() {
    return redirect()->to('nouvelle-page');
});

Pratique lorsque vous refondez votre site ou changez les URL.

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?

Bonnes pratiques pour les routes avec CodeIgniter 4

Voici quelques conseils pour organiser efficacement vos routes avec CodeIgniter 4 :

  • Groupez vos routes par fonctionnalité (ex : adminbloguser)
  • Utilisez des noms d’URL simples et SEO-friendly
  • Ajoutez des filtres pour la sécurité
  • Évitez le routage automatique en production
  • Documentez vos routes pour faciliter la maintenance

Organiser ses routes avec CodeIgniter 4 avec des groupes

Les routes avec CodeIgniter 4 peuvent être regroupées. Cela permet de simplifier la gestion de votre fichier Routes.php, surtout lorsque vous avez plusieurs routes similaires (par exemple pour une partie admin).

Exemple :

$routes->group('admin', ['filter' => 'auth'], function($routes) {
    $routes->get('dashboard', 'Admin\DashboardController::index');
    $routes->get('users', 'Admin\UsersController::list');
    $routes->get('users/edit/(:num)', 'Admin\UsersController::edit/$1');
});

Ici, toutes les routes avec CodeIgniter 4 du groupe admin sont automatiquement filtrées par auth (authentification). Cela rend votre code plus clair, plus DRY (Don’t Repeat Yourself), et plus facile à maintenir.

Nommer ses routes avec CodeIgniter 4 pour une navigation plus souple

Vous pouvez nommer vos routes avec CodeIgniter 4 pour les retrouver plus facilement dans vos vues ou redirections.

Exemple :

$routes->get('profil', 'UserController::profile', ['as' => 'user-profile']);

Et pour générer l’URL dans une vue :

<?= route_to('user-profile'); ?>

C’est particulièrement utile dans les gros projets où vous avez des dizaines (voire des centaines) de routes avec CodeIgniter 4.

Utiliser les namespaces pour une route avec CodeIgniter 4

Quand vous organisez vos contrôleurs dans des sous-dossiers (App\Controllers\Admin par exemple), vous pouvez définir un namespace de base pour vos routes.

Exemple :

$routes->group('admin', ['namespace' => 'App\Controllers\Admin'], function($routes) {
    $routes->get('produits', 'ProduitsController::index');
});

Cela permet à CodeIgniter de savoir dans quel dossier chercher vos contrôleurs sans que vous ayez à le spécifier à chaque route. Encore une fois, cela améliore la lisibilité et la structure du projet.

Gérer les langues avec les routes

CodeIgniter 4 est parfaitement compatible avec des sites multilingues. Vous pouvez définir des routes avec CodeIgniter 4 spécifiques à chaque langue, ou utiliser des segments d’URL pour charger la bonne langue.

Exemple :

$routes->group('{locale}', ['namespace' => 'App\Controllers'], function($routes) {
    $routes->get('/', 'HomeController::index');
    $routes->get('contact', 'HomeController::contact');
});

Avec cette configuration, vous pouvez accéder à :

  • /fr/contact
  • /en/contact

Et le framework chargera automatiquement les bons fichiers de langue. C’est idéal pour développer des sites internationaux avec un routage clair et cohérent.

Cas concret : créer un espace client multilingue

Voici un petit exemple réaliste d’utilisation des routes avec CodeIgniter 4 dans un espace client disponible en plusieurs langues :

$routes->group('{locale}/mon-compte', ['filter' => 'auth'], function($routes) {
    $routes->get('/', 'Client\Dashboard::index');
    $routes->get('commandes', 'Client\Commandes::index');
    $routes->get('profil', 'Client\Profil::edit');
});

Vous offrez ainsi une expérience fluide, sécurisée, et multilingue à vos utilisateurs grâce à la puissance des routes avec CodeIgniter 4.

Astuce : structurer les routes dans plusieurs fichiers

Si votre application devient très grande, vous pouvez répartir les routes avec CodeIgniter 4 dans plusieurs fichiers, par exemple :

  • Routes/admin.php
  • Routes/blog.php
  • Routes/api.php

Et les inclure dans app/Config/Routes.php :

if (file_exists(APPPATH . 'Routes/admin.php')) {
    require APPPATH . 'Routes/admin.php';
}

Cette organisation est recommandée pour les projets de taille moyenne à grande. Elle rend la gestion des routes avec CodeIgniter 4 plus modulaire.

Bonus : visualiser les routes avec la CLI

La CLI de CodeIgniter 4 permet d’afficher toutes les routes avec CodeIgniter 4 définies dans l’application.

Dans votre terminal :

php spark routes

Vous obtiendrez une liste claire de toutes les routes, leurs méthodes HTTP, leur destination (contrôleur::méthode), leurs filtres, etc.

C’est extrêmement pratique pour déboguer ou pour avoir une vue d’ensemble de votre architecture.

Récapitulatif : ce que vous devez retenir sur les routes avec CodeIgniter 4

  • Les routes avec CodeIgniter 4 connectent vos URL à vos contrôleurs.
  • Vous pouvez définir des routes GET, POST, dynamiques, filtrées, et même groupées.
  • Le routage peut être manuel (recommandé) ou automatique (à éviter en production).
  • Les groupes, les namespaces et les noms de routes rendent vos fichiers plus propres.
  • CodeIgniter 4 prend en charge les routes multilingues très facilement.
  • Une bonne organisation de vos routes avec CodeIgniter 4 est essentielle dans un projet pro.
Route codeingniter 4

les routes avec CodeIgniter 4 sont votre meilleur allié

Vous l’avez vu à travers ces deux parties : bien maîtriser les routes avec CodeIgniter 4, c’est maîtriser la colonne vertébrale de votre application. Avec un système de routage clair, bien structuré et sécurisé, vous allez gagner en temps, en performance, et en qualité de code.

Que vous soyez débutant ou développeur confirmé, n’hésitez pas à expérimenter avec les nombreuses possibilités offertes par les routes avec CodeIgniter 4. C’est un pilier essentiel pour réussir vos projets web avec ce framework moderne, rapide et puissant.


🔁 Besoin d’un exemple de projet complet utilisant les routes avec CodeIgniter 4 ? N’hésitez pas à consulter mes formations gratuites en live sur Twitch ou mes articles de blog dédiés au développement web.

Live on Twitch
  • 🔥 Vendredi 25 Avril 2025 >19h00

    HTML & SémantiqueStructure d'une page HTML