Sahid Ferdjaoui Blog - Funraill Foundation Bienvenue, Log in - thème 2007 RC1

Powered by OpenSource Softwares

Outil de déboggage colaborative
reduire

Modele MVC en PHP - La classe View en PHP5

le 23 janvier 2007 par sahid

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().

  1. $view = new view();

On passe à un autre objet $view, une variable de cette maniÚre

  1. $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

  1. echo $view->newVar;

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().

  1.                 include ($content);
  2.                
  3.                 return ob_get_clean();

Un exemple d’utilisation

La classe complÚte est disponible ici
On dispose d’un fichier template de cette forme

  1.     <body>
  2.         <h1>< ?=$this->bonjour;</h1>
  3.     </body>
  4. </html>

un extrait de notre code métier

  1. $view = new View (“/tpl”);
  2.  
  3. $view->bonjour = “Hello Wolrd!”;
  4. $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.

4 commentaires pour Modele MVC en PHP - La classe View en PHP5

  1. dadoo dit :

    Bravo Said
    Je cherchais des explicatins sur le MVC et tu explique trÚs bien ;o))
    Merci

    Dadoo

  2. Sylvain R. dit :

    Smarty est tout désigné comme systÚme de template dans une application MVC :

    http://smarty.php.net

  3. Andrie dit :

    Bravooooooo….. From Wongso

  4. nico dit :

    L’OO c’est super puissant mais en PHP ca m’a toujours fait flippé Oo

Tu peux laisser un commentaire pour Modele MVC en PHP - La classe View en PHP5