CodeIgniter
Le contrôleur avec CodeIgniter
Un mot sur l'URL rewriting
Par défaut, CodeIgniter utilise l'URL rewriting : c'est un mécanisme permettant de traduire une URL de type http://url.com/form.php?id=2
en une URL plus compréhensible par les hommes comme http://url.com/engagez-vous-chez-ig2k.
Ce mécanisme a pour but de rendre les URL compréhensibles par les hommes et de permettre le référencement
de toutes les pages par des moteurs de recherche comme google : en règle générale les moteurs de recherche ne référencent que les pages avec
au plus deux paramètres dans l'URL. Les paramètres d'une URL correspondent aux attributs se trouvant après le point d'interrogation.
Exemple :
- http://url.com/form.php?id=2&titre=ig2k
- http://url.com/form.php?id=2&titre=ig2k&auteur=someone
Note : il est possible de désactiver l'URL rewriting dans CodeIgniter. Voir cette adresse.
Rôle du contrôleur
Rappel : le contrôleur est la partie qui demande à la vue de se rafraîchir et au modèle d'effectuer le traitement.
Dans un site internet, le contrôleur se charge de récupérer les données envoyées par l'utilisateur
par exemple via un formulaire, d'appeler les méthodes du modèle ainsi que de charger les pages internet en fonction des données récupérées.
Il en est de même avec CodeIgniter qui fait du contrôleur le coeur d'une application PHP. Il est aussi utilisé pour construire les adresses URL de l'application.
Création d'un contrôleur
Il est assez simple de créer un contrôleur avec CodeIgniter. Pour effectuer cette opération :
- Il faut créer une classe qui hérite de la classe Controller de CodeIgniter.
- Il faut aussi créer un fichier PHP portant le même nom que le contrôleur que nous allons créer dans le dossier system/application/controllers (ce dossier se trouve dans le dossier de publication de votre serveur web, après avoir décompressé l'archive contenant CodeIgniter).
- Puis dans cette nouvelle classe, on crée des fonctions qui vont effectuer les appels aux vues et aux fonctions du modèle.
Exemple : On souhaite créer un contrôleur nommé FakeController qui possède une fonction permettant d'afficher un message de bienvenue. Il faut d'abord créer le fichier nommé fakecontroller.php dans le dossier system/application/controllers et ajouter la classe suivante dans le fichier nouvellement créé :
<?php
class FakeController extends Controller{
function index(){
echo "bienvenue !";
}
}
?>
Note : La fonction index() ne fait qu'afficher "bienvenue !" sans passer par une vue, ce qui est une mauvaise pratique. Voir la partie Vue.
Appel des fonctions du contrôleur
En reprenant l'exemple du FakeController ci-dessus, en supposant que le nom de domaine est url.com et que l'archive de CodeIgniter ait été décompressée à la racine du dossier de publication, pour appeler la fonction index(), il suffit d'entrer l'adresse suivante (utilisant l'URL rewriting):
- http://url.com/index.php/fakecontroller/index
Par exemple, si la fonction index a été déclarée avec un paramètre $titre (function index($titre)), on peut entrer l'URL suivante :
- http://url.com/index.php/fakecontroller/index/unTitre
Note : Si dans l'URL, le nom de la fonction est omise, c'est la fonction index() qui est appelée par défaut.