Dur Comme Faire

Aller au contenu | Aller au menu | Aller à la recherche

MVC et PHP

Jusqu'à présent, je n'ai jamais été convaincu par un framework PHP. Tous ceux que j'ai testé étaient soit trop compliqués à mettre en oeuvre, soit trop gourmands en ressources, soit trop contraignants et la plupart du temps tout ça à la fois.

Paradoxalement, je n'avait jamais vraiment essayé de développer mon propre framework. J'ai préféré mettre en place des méthodes de développement et des choix conceptuels personnels que j'affine au fil des ans.

Dans le même temps, j'entends de plus en plus parler des design patterns et je dois dire c'est bigrement intéressant. J'utilise notamment les patterns singleton et factory dans certains développement. Ces derniers temps, je me suis intéressé au pattern MVC et cela a été comme une révélation pour moi.

Je me suis aperçu qu'à la manière de monsieur Jourdain, je faisais du MVC sans le savoir (Pardon Molière). En effet, en me plongeant dans ce design pattern, je me suis aperçu que les pratiques que j'avais mis en place au fil du temps suite à mes expériences, étaient très proches des principes du MVC.

MVC signifie Model View Controller, ou Modèle Vue Contrôleur en Français. Comme toute les bonnes idées, le principe est finalement assez simple. On divise une application en 3 couches distinctes. La première, le contrôleur, va gérer les demandes de l'utilisateur et contrôler les 2 autres couches. Le modèle va contenir les traitements métier et va être interfacé avec les sources de données (bases de données, fichiers plats, annuaires LDAP, etc.). Enfin, la vue va afficher le résultat des traitement effectués par le modèle.

Le premier avantage de ce découpage c'est que si l'une des couches doit changer, cela se fait sans toucher aux autres couches. Ainsi, si au lieu d'afficher des pages HTML, vous devez finalement renvoyer du XML qui sera utilisé par un Web service, seule la vue devra être modifiée.

Le second est qu'une fois le framework mis en place, les développements sont rapides car seul le code métier doit être développé. Tout le reste est géré par le framework.

Voici quelques lectures pour approfondir le sujet :

vendredi 30 septembre 2005 à 12h41 - PHP Fil de syndication

Rétroliens

1. Le mardi 4 octobre 2005 à 17h06, de Le Blog de Guillaume

De MVC aux Design Patterns

Je me suis amusé il y a quelques semaines à étudier la plupart des frameworks PHP existants, étude largement soutenue par Damien Seguy qui s'est mis à interroger tous les auteurs pour Direction|PHP et j'ai été stupéfait du nombre de frameworks basés...

2. Le vendredi 29 septembre 2006 à 16h05, de Documentation et Tutoriaux sur le MVC, Spring et Zend Frameworks

Présentation de l'architecture MVC

Le MVC, qu'est-ce que c'est ??!! Pourquoi l'utiliser ? et quelles sont les questions qui se pose avec ce design pattern ?

Les rétroliens pour ce billet sont fermés.

Commentaires

Gravatar de Vincent

Le problème est que le pattern MVC s'appuie essentiellement sur le pattern Observer pour permettre au modèle de notifier la vue que les données ont changées et que celle-ci doit se mettre à jour en redemandant les données au modèle.

Le modèle étant un script PHP sur le serveur et la vue une page web sur un navigateur, il est impossible pour le modèle de notifier la vue de changements éventuels dans les données et on perd ainsi un gros intérêt de MVC.

Vincent le vendredi 30 septembre 2005 à 15h45 Icone du permalien

Gravatar de perrick

C'est exactement comme cela que les patterns émergent dans un code que l'on reprend régulièrement !
Le problème c'est souvent que une fois qu'on a découvert un ou plusieurs de ces modèles de conception, on s'y tient et on s'y bloque. Et tout devient "clou" puisqu'on a un nouveau marteau entre les mains ! L'artiste "zen" te dira qu'il faut maintenant oublier ce que tu viens de découvrir (zut je n'arrive pas à trouver le lien vers ce truc-là)

perrick le vendredi 30 septembre 2005 à 18h44 Icone du permalien

Gravatar de Arnaud

Vincent: c'est le role du controleur de faire ca. Le modèle ne fait que décrire les données, les règles de validation, etc. Le but du controleur est de coordonner le tout.

A regarder: un framework interessant www.solarphp.com

Arnaud le samedi 1 octobre 2005 à 10h21 Icone du permalien

Gravatar de qwix

C'est marrant Jean Marc mais je me suis posé exactement les même interrogations vendredi lol.

Concernant la vue, tu peux implémenter un design pattern Strategy je pense, ainsi si tu doit gérer différent affichage (Web, téléphone portable, etc, etc) le fait d'utiliser Strategy te simplifiera la tâche je pense. Tu en penses quoi ?

:)

qwix le samedi 1 octobre 2005 à 22h21 Icone du permalien

Gravatar de qwix

Ces urls devraient t'intéresser:
- www.phpwact.org/php/mvc_f...
- www.phpwact.org/pattern/m...

:)

qwix le lundi 3 octobre 2005 à 21h26 Icone du permalien

Gravatar de JMF

Merci beaucoup qwix. :)

JMF le lundi 3 octobre 2005 à 23h21 Icone du permalien

Gravatar de qwix

C'est quand même assez incroyable la puissance et la profondeur de ce pattern.
J'ai bien l'impression que l'on peut facilement passer des années dessus et découvrir des tonnes de choses encore...

:)

qwix le mardi 4 octobre 2005 à 15h15 Icone du permalien

Gravatar de Elucubrations

existe-t'il des ressources en "french in the text" ?
ou mieux encore un framework en français ?
merci

Elucubrations le mercredi 5 octobre 2005 à 09h36 Icone du permalien

Gravatar de JMF

Elucubrations> Le second lien que je donne à la fin de mon bilelt est en Français comme son titre l'indique. ;)

Quant à trouver un framework en Français, je n'en connais pas et je doute que cela existe car l'intérêt serait assez limité.

JMF le mercredi 5 octobre 2005 à 10h10 Icone du permalien

Gravatar de Frédéric

> Framework en français

Il existe phpjaz.org/

Frédéric le mercredi 5 octobre 2005 à 11h22 Icone du permalien

Gravatar de elucubrations

oui je connaissais déjà cette ressource elle est un peu "raide" sur la fin. Le début explique bien le concept mais après à mon avis ça devient un peu flou.
Pour le framework en français c'est surtout au niveau doc que l'intérêt existe, il y en marre de se taper des docs techniques en anglais où la barrière de la langue nous fait passer à côté de subtilités de sens et donc de compréhension.

elucubrations le mercredi 5 octobre 2005 à 11h41 Icone du permalien

Gravatar de JMF

Frédéric> J'ai commencé à regarder Jaz et je suis bluffé par les fonctionnalités de la chose. J'ai hâte de regarder sous le capot comment cela fonctionne.

JMF le mercredi 5 octobre 2005 à 14h32 Icone du permalien

Gravatar de roul

Ou peut-on trouver un lien vers des cours, exos, TP implémentant simplement un site PHP conçu avec MVC

roul le mercredi 12 octobre 2005 à 15h36 Icone du permalien

Gravatar de Dready

C'est clair que c'est puissant le MVC comme design pattern. Au niveau framework celui sur lequel j'ai bloqué c'est Code Igniter ( www.codeigniter.com ). Tres simple, léger, une tres bonne documentation, des vidéos tutorial... énorme.

Dready le jeudi 21 décembre 2006 à 11h44 Icone du permalien

Ajouter un commentaire

Les commentaires pour ce billet sont fermés.

XHTML - CSS - DotClear - Technorati

Les billets de ce blog sont sous licence Creative Commons