Modele MVC en PHP - La classe View en PHP5
Une classe pour la vue de votre application OOP en PHP
Avant propos
Depuis PHP5 et sa couche objet refaite à neuf, les applications PHP ont plus qu’evolué, et on ne parle plus de PHP comme un simple langage script pour le web, mais comme un véritable langage orienté objet digne de Java ou C++, mais alors pourquoi ne pas utiliser les grands principes d’un langage de programmation objet ? …
Nous allons dans ce petit article mettre en place une classe “view” permettant la séparation du code métier (PHP codé en dur) et de la partie graphique (code HTML)
Les méthodes magiques
PHP5 admet les méthodes __set() et __get() (il y en existe d’autre …), la premiÚre permet de récupérer une variable passée à la volée à notre objet view et admet deux paramÚtres, le premier étant la clef et le second la valeur de cette clef, la méthode __get() elle admet un paramÚtre qui sera la clef et permet donc, de retourner la valeur issue d’une clé …(erf, pas de panique c’est trÚs simple, sauf que j’explique trÚs mal !)
Un petit exemple
Admettons qu’on crée un objet qui admet comme méthode __get() et __set().
-
$view = new view();
On passe à un autre objet $view, une variable de cette maniÚre
-
$view->newVar = “Hello Wolrd”;
Dans cette exemple, la méthode magique __set() de PHP5 se remplit automatiquement avec en clef “newVar” et en valeur “Hello Wolrd” …(c’est déjà plus clair avec un exemple), mais continuons
Cette fois-ci c’est la méthode magique __get() de PHP5 qui se remplit automatique avec en clef “newVar”.
Le rendu de nos pages
Pour le rendu de nos pages, nous allons utiliser le systÚme de cache de PHP, avec ob_start(), et ob_get_clean(). Le principe est en fait assez simple, on lance la fonction ob_start() qui commence la mise en tampon des infomations de sortie, ensuite avec un include() on récupÚre notre fichier template pour le placer dans notre tampon, cela nous permet donc d’utiliser dans notre template, des variables déclarées dans notre code métier …(pas mal l’abeille !) …la fonction ob_get_clean() nous retourne le tout qu’on aura plus qu’a afficher avec un simple echo().
-
include ($content);
-
Un exemple d’utilisation
La classe complÚte est disponible ici
On dispose d’un fichier template de cette forme
un extrait de notre code métier
-
$view = new View (“/tpl”);
-
-
$view->bonjour = “Hello Wolrd!”;
-
$view->render (“template.php”);
Conclusion
En utilisant les methodes magiques de PHP5, on dispose d’une classe View trÚs simple à mettre en oeuvre et assez modulable, je l’utilise dans plusieurs de mes projets.
Tableau de bord




16 mars 2007 at 14:29
Bravo Said
Je cherchais des explicatins sur le MVC et tu explique trÚs bien ;o))
Merci
Dadoo
31 mai 2007 at 17:38
Smarty est tout désigné comme systÚme de template dans une application MVC :
http://smarty.php.net
13 novembre 2007 at 3:43
Bravooooooo….. From Wongso
26 mars 2008 at 22:24
L’OO c’est super puissant mais en PHP ca m’a toujours fait flippé Oo