Routes CodeIgniter : routage d'URL avec exemple
Que sont les routes CodeIgniter ?
Les routes sont chargées de répondre aux requêtes URL. Le routage fait correspondre l'URL aux itinéraires prédéfinis. Si aucune correspondance d'itinéraire n'est trouvée, CodeIgniter lève une exception de page introuvable.
Les routes dans CodeIgniter sont définies à l'aide de la formule ci-dessous :
example.com/Controller/Method/Parameter/
ICI,
- Controller -est mappé au nom du contrôleur qui doit répondre à l'URL.
- Méthode – est mappée à la méthode du contrôleur qui doit répondre à la demande URI.
- Paramètre – cette section est facultative.
Exemple d'itinéraires CodeIgniter
Examinons maintenant un routage d'URL pratique dans CodeIgniter Exemple.
Considérez l'URL suivante http://localhost:3000/contacts/edit/1
ICI,
- Le nom du contrôleur répondant à l'URL ci-dessus est « contacts »
- La méthode dans la classe du contrôleur Contacts est « éditer »
- La méthode d'édition accepte un paramètre. Dans le cas de notre exemple, la valeur « 1 » est passée à la méthode.
Voici un bref aperçu de ce que nous prévoyons de faire :
- Routage – le routage est chargé de répondre aux requêtes URL. CodeIgniter Routing fait correspondre l'URL aux itinéraires prédéfinis. Si aucune correspondance d'itinéraire n'est trouvée, CodeIgniter renvoie une exception de page introuvable.
- surchargés – les itinéraires sont liés aux contrôleurs. Les contrôleurs collent les modèles et les vues ensemble. La demande de données/logique métier du modèle et renvoie les résultats via la présentation des vues. Une fois qu'une URL a été mise en correspondance avec une route dans CodeIgniter, elle est transmise à une fonction publique du contrôleur qui interagit avec la source de données, la logique métier et renvoie la vue qui affiche les résultats.
- Vues – les vues sont responsables de la présentation. Une vue est généralement une combinaison de HTML, CSS et Javascénario. C'est la partie responsable de l'affichage de la page Web à l'utilisateur. En règle générale, les données affichées sont généralement extraites de la base de données ou de toute autre source de données disponible.
Pour apprendre à implémenter des routeurs sur un projet réel, nous supposerons que nous créons une application de gestion des coordonnées. Le tableau suivant montre les URL avec lesquelles vous travaillerez.
Ratio S / N | URL | Itinéraire | Méthode | |
---|---|---|---|---|
1 | / | $route['default_controller'] | Bienvenue | indice |
2 | /Contacts | $route['contacts'] | Contacts | indice |
3 | /contacts/créer | $route['créer'] | Contacts | engendrent |
4 | /contacts/modifier/identifiant | $route['edit/:id'] | Contacts | éditer |
5 | /contacts/mise à jour/identifiant | $route['update/:id'] | Contacts | Mise à jour |
6 | /contacts/supprimer/identifiant | $route['delete/:id'] | Contacts | effacer |
Nous allons créer les itinéraires de notre application en fonction du tableau ci-dessus. Nous avons défini les URL, la route CodeIgniter et les avons mappés aux noms de contrôleur et de méthode respectifs.
Création d'un routage d'URL pour l'application
Créons le routage d'URL CodeIgniter pour notre projet de didacticiel
Ouvrez application/config/routes.php
Modifier les itinéraires pour qu'ils correspondent à ce qui suit
$route['default_controller'] = 'welcome'; $route['contacts'] = 'contacts'; $route['create'] = 'contacts/create'; $route['edit/:id'] = 'contacts/edit'; $route['update/:id'] = 'contacts/update'; $route['delete/:id'] = 'contacts/delete'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
ICI,
- $route['default_controller'] = 'bienvenue'; définit le contrôleur par défaut Welcome.
- $route['contacts'] = 'contacts'; définit une route de contacts qui appelle la méthode index dans le contrôleur Contacts
- $route['create'] = 'contacts/créer'; définit une route create qui pointe vers le contrôleur Contacts et appelle la méthode create.
- $route['edit/:id'] = 'contacts/edit'; définit une édition d'itinéraire qui accepte un paramètre d'id et pointe vers la méthode d'édition du contrôleur de contacts
- $route['update/:id'] = 'contacts/mise à jour'; définit une route update qui accepte un paramètre id et pointe vers la méthode update de la classe Contacts.
- $route['delete/:id'] = 'contacts/supprimer'; définit une route delete qui accepte un paramètre id et pointe vers la méthode delete du contrôleur Contacts.
Le tableau suivant montre les URL respectives dérivées des routes définies ci-dessus
Ratio S / N | Itinéraire | URL correspondante |
---|---|---|
1 | $route['default_controller'] = 'bienvenue'; | http://localhost:3000 |
2 | $route['contacts'] = 'contacts'; | http://localhost:3000/contacts |
3 | $route['create'] = 'contacts/créer'; | http://localhost:3000/contacts/create |
4 | $route['edit/:id'] = 'contacts/edit'; | http://localhost:3000/contacts/edit/1 |
5 | $route['update/:id'] = 'contacts/mise à jour'; | http://localhost:3000/contacts/update/1 |
6 | $route['delete/:id'] = 'contacts/supprimer'; | http://localhost:3000/contacts/delete/1 |
Maintenant que nous avons couvert les routes, créons le contrôleur Contacts qui répondra aux actions spécifiées dans les routes.
Créez un nouveau fichier Route dans CodeIgniter sous le nom Contacts.php dans application/controllers/Contacts.php
Ajoutez le code suivant
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Contacts extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper('url'); } public function index() { $this->load->view('header'); $this->load->view('contacts/index'); $this->load->view('footer'); } public function create() { $this->load->view('header'); $this->load->view('contacts/create'); $this->load->view('footer'); } public function edit($id) { $this->load->view('header'); $this->load->view('contacts/edit'); $this->load->view('footer'); } public function update($id) { $this->load->view('header'); $this->load->view('contacts/update'); $this->load->view('footer'); } public function delete($id) { $this->load->view('header'); $this->load->view('contacts/delete'); $this->load->view('footer'); } }
ICI,
- Les contacts de classe étend CI_Controller {..} définissent notre classe de contrôleur et étend la classe CI_Controller fournie avec CodeIgniter.
- Les méthodes définies ci-dessus correspondent aux routes que nous avons définies et celles avec des paramètres comme delete acceptent un paramètre de $id
- Notez que les fonctions chargent trois (3) vues. L'en-tête et le pied de page sont communs à toutes les méthodes. La vue du milieu est très spécifique à l'action, c'est à dire supprimer pour supprimer une fonction créer une vue pour créer une fonction, etc. Une autre chose importante à retenir est que les vues sont chargées depuis le sous-répertoire des contacts.
Vues CodeIgniter
Nous devons encore franchir une étape supplémentaire avant de pouvoir tester nos routes CodeIgniter avec des paramètres dans le navigateur Web. Créons les vues correspondantes aux méthodes de contrôleur ci-dessus.
L'image suivante montre à quoi ressemblera votre application
Créez les fichiers suivants dans application/views
header.php – this file will contain contacts app menu and the header footer.php – this files will contain the application footer.
Créez un nouveau répertoire de contacts dans les vues application/vues/contacts
Créez les fichiers suivants à l'intérieur
index.php create.php edit.php
La structure de votre fichier doit être la suivante
Mettons maintenant à jour le header.php
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>CodeIgniter Routes</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> </head> <body> <section class="section"> <div class="container"> <h1 class="title">CI Contacts v1</h1> <h2 class="subtitle">CodeIgniter contacts management app</h2> <div class="columns"> <div class="column is-one-quarter"> <aside class="menu"> <p class="menu-label"> General </p> <ul class="menu-list"> <li><a class="is-active" href="#">Dashboard</a></li> <li><a href="<?=site_url('contacts/create')?>">New Contact</a></li> <li><a href="<?=site_url('contacts/edit/1')?>">Edit Contacts</a></li> </ul> <p class="menu-label"> Settings </p> <ul class="menu-list"> <li><a href="#">SMS</a></li> <li><a href="#">Email</a></li> </ul> </aside> </div>
ICI,
- Le code HTML ci-dessus charge le Burma CSS à partir d'un réseau CDN.
Voici le code du footer.php
</div> </div> </section> </body> </html>
Ajoutons maintenant le code des fichiers index.php, edit.php et create.php pour les contacts.
index.php <div class="column">Index content goes here...</div> edit.php <div class="column">Edit content goes here...</div> create.php <div class="column">Create content goes here...</div>
Vous pouvez enregistrer toutes les modifications apportées.
Ouvrez l'URL suivante dans votre navigateur Web http://localhost:3000/contacts/
vous pouvez cliquer sur les liens Nouveau contact et Modifier le contact et voir ce qui se passe
Résumé
- Les routes dans CI sont chargées de répondre aux requêtes URL. Le routage fait correspondre l'URL aux itinéraires prédéfinis. Si aucune correspondance CodeIgniter Route n'est trouvée, CodeIgniter renvoie une exception de page introuvable.
- CI Routing est responsable de répondre aux demandes d’URL. Le routage fait correspondre l'URL aux itinéraires prédéfinis.
- Les contrôleurs collent les modèles et les vues ensemble. La demande de données/logique métier du modèle et renvoie les résultats via la présentation des vues.
- Les vues sont responsables de la présentation. Une vue est généralement une combinaison de HTML, CSS et JavaScénario.
- Dans ce didacticiel, nous avons appris à créer des routes dans CodeIgniter pour un exemple d'application réel et avons couvert les bases du routage que vous devez connaître pour commencer à développer CodeIgniter.