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 :

L'URL ci-dessus possède deux paramètres "id" et "titre" qui ont pour valeur respective "2" et "ig2k". Cette adresse sera référencée par quasiment tous les moteurs de recherche étant donné qu'il n'y a que deux paramètres. Ce ne sera pas le cas pour l'exemple suivant : L'URL rewriting règle ce problème puisque nous n'utilisons plus de paramètres. Pour plus d'informations, developpez.com

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 :

La convention à respecter est la suivante : le nom de la classe prend une majuscule au début et le fichier PHP a le même nom que la classe mais tout en minuscule et avec l'extension .php.

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):

Si la fonction index() possédait des paramètres, il faut indiquer les valeurs des paramètres dans l'URL.
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 :
Note : Si dans l'URL, le nom de la fonction est omise, c'est la fonction index() qui est appelée par défaut.