Les frameworks MVC (Model View Controller) et les applications webCette article explique l'utilité de l'architecture MVC dans les applications web et vous donne les bases pour faire votre propre Framework adapté à vos besoins...Les grandes lignes de la théorie
L'architecture MVC (pattern d'architecture plus exactement) est un concept qui sépare votre application en trois types de fichiers principaux :
Le traitement d'une requête est donc assez simple : le Controller la traite (en manipulant les Models) puis la View affiche la page correspondante tout en usant des Models également
Ce qu'il en est aujourd'hui
S'il est vrai qu'à l'origine le concept de l'architecture MVC était assez basique (presque un simple système de rangement), aujourd'hui ce n'est plus le cas. Depuis l'apparition du framework Ruby On Rails puis des plus récents CakePHP et Symphony, la notion de framework MVC a évolué chez la plupart des gens.
En effet, que l'on considère que ce soit par un abus de langage ou par une évolution, on attend aujourd'hui d'un framework MVC (pour les applications web) qu'il contienne les éléments suivants :
L'organisation MVC
Elle dépend fortement de vos besoins, mais est généralement composée comme ci-dessous.
L'application marche en termes d'actions effectuables regroupées au sein de différents controllers. Par exemple, une bibliothèque manipulerait les objets (Models) Livre, CD, DVD, Location et Utilisateur. Sémentiquement on pourrait par exemple décomposer les actions en deux controllers: Bibliothèque (avec les actions louer, rendre etc...) et Membres (avec nouveau, modifier etc..) Pour les vues, on peut faire une plateforme où chaque action a une vue correspondante ou bien une plateforme où les vues sont réalisées de façon indépendantes et appelées par les actions (par exemple à la fin de celle-ci). La deuxième solution me semble bien plus modulaire dans le sens où deux actions peuvent afficher la même vue et qu'une action pourra afficher (selon les données d'entrée) des vues différentes. Des Url bien plus propres
Le cas du paragraphe précédant nous donnerait une application dans le genre http://bibli2008.com?controller=membres&action=editer&id=5646
La plupart des frameworks MVC (mais ce ne sont pas les seuls) intègrent un système de gestion des URL de façon propre du type : http://bibli2008.com/membres/editer/5646 voire privilégier des permaLinks pour les utilisateurs http://bibli2008.com/francescu/editer. Grace à Apache, cela est réalisable de deux manières :
Du Javascript pour des interfaces presque riches
Je me contenterai de vous dire qu'il existe une grande diversité de framework Javascript et qu'il n'est pas forcément intéressant (en rapport temps/gain) de faire sa propre librairie. En effet, celles existantes permettent de charger ce dont vous avez besoin, sont de taille assez modeste et sont assez complètes.
Se distinguent nottemment les librairies suivantes :
De vos «Tables SQL» à vos «Classes PHP»
Comme le fait Ruby On Rails, les frameworks MVC proposent des outils vous permettant de faire abstraction du système de gestion de base de données (SGBD) et de gérer vos objet comme si vous manipuliez vos enregistrements (le tout optimisé avec un système de cache).
Cela se nomme l'Object-Relational Mapping (ORM), cela "convertit" les types du monde objet (poo) en ceux du monde relationnel (bdd) et vice versa. Cela fournit également des facilités d'enregistrement, de suppression et de modification. L'implémentation est assez technique mais si vous êtes motivés quelques semaines de travail acharné vous permettront de faire le votre sans grands problèmes impossibles à résoudres (quelques problématiques devront être résolues mais vous y arriverez certainement). Sinon vous trouverez quelques Frameworks ORM sur la page Wikipedia (fr). Des petits plus...
Il existe également dans les frameworks des petits plus qui vous permettront de gérer facilement les templates (qui certes sont assez simples à mettre en place, mais c'est une étape à ne pas oublier car elle est très importante) ou encore d'avoir des helpers, sortes de "fonctions raccourcis".
Par exemple mettre un champs de texte dans une formulaire <?php Form::inputText(array("name" => "X", "style" => array("width" => "30px", "border:none"))); ?> ou transformer une date anglaise en format français <?php Date::EnToFr(date("Y-m-d")); ?> N'hésitez pas à en abuser mais n'hésitez pas non plus à ne les charger qu'en cas de besoin (cf. la fonction __autoload ) Pour conclure
La création de votre propre plateforme sera longue mais de nombreux outils sont là pour vous faciliter la tâche. Vous pouvez choisir de partir à zéro ou d'utiliser un framework déjà existant (CakePHP ou Sympony par exemple) mais vous pouvez également opter pour une solution intermédiaire, qui est de prendre ce qui vous intéresse et de faire ce qui est unique pour votre propre framework, vous aurez alors un framework adapté que vous maîtriseriez sur le bout des doigts.
Mardi 22 Juillet 2008
Francescu SANTONI
Nouveau commentaire :
Dans la même rubrique :
Installer un serveur Web sous Debian 4 en 10 minutes - 31/07/2008Encodage : convertir un site en UTF8 - PHP/MySQL - 29/08/2007 |
Les News
Newsletter
|
Les frameworks MVC (Model View Controller) et les applications web

