Architecture MVC dans Mediaboard
Imprimer

MVC

L'architecture Modèle-Vue-Contrôleur (MVC) est une méthode de conception pour le développement d'applications logicielles qui sépare le modèle de données, l'interface utilisateur et la logique de contrôle entre ces deux derniers.

Nous ne nous étendrons pas sur le concept MVC, mais plutôt sur sa mise en oeuvre dans Mediboard. Pour plus d'informations sur le concept, nous vous invitons à lire l'article MVC sur la wikipedia.

Devenu incontournable tant ses bénéfices sont grand en termes de génie logiciel, Mediboard a été conçu dès le départ sur une architecture MVC.

MVC et web

L'architecture trois tiers d'une application web, du fait qu'elle met en oeuvre des nombreux langages - comme SQL?, PHP, XHTML, CSS et Javascript - facilite et encourage la mise en oeuvre d'une architecture MVC.

En effet les langages étant très spécialisés, par exemple pour l'accès au modèle (PHP et SQL) ou pour l'affichage (XHTML et CSS), il est plus simple de bien séparer les responsabilités entre le modèle, les vues et les contrôleurs.

Il est malgré tout possible voire fréquent de mal implémenter un MVC, c'est pourquoi nous y avons attaché une importance particulière dans Mediboard.

MVC dans Mediboard

Cet article explique l'implémentation du MVC d'un point de vue théorique, pour un aspect plus pratique, il est recommandé de suivre le tutoriel de création de module.

Le modèle

Il est composé essentiellement de classes métiers écrites en PHP. Toutes héritent de la classe CMbObject, laquelle fournit de très nombreux services du Framework dont notamment le système de spécifications de propriétés des objets.

L'accès aux données persistantes, en particulier depuis la base de données, est encapsulé dans cette classe mère ce qui signifie que les requêtes SQL sont très rarement écrites en dur, mais la plupart du temps générées, ce qui explique leur faible quantité dans le code source de Mediboard.

Les vues

La production des vues est initiée par des fichiers PHP minimaux, qui se contentent de déclencher le chargement des objets ad hoc sur une modèle navigationnel donc orienté objet et ultra-concis.

Ces interfaces sont typiquement produites en XHTML, par l'intermédiaire du langage de template Smarty, aidant la séparation avec l'accès aux données traité en PHP comme on vient de le voir.

Le rendu final des vues est dépendant du style? choisi, principalement constitué de code CSS et d'images, ainsi que du langage, puisque l'essentiel de l'interface est produit en fonction d'une système d'internationalisation.

Les contrôleurs

Le contrôleur principal de Mediboard est son URL dispatcher (fichier index.php) qui assure l'essentiel du déclenchement des traitements suite aux requêtes web du navigateur.

Il est suppléé par une nombre assez importants de sous-contrôleurs, permettant d'analyser et de traiter les requêtes HTTP POST, issus des formulaires. Ces fichiers, nommés do_[objet métier]_aed.php, manipulent des instances CDoOjbectAddEdit à cet effet.

On remarquera également l'utilisation d'Ajax dans l'interface utilisateur de Mediboard. A ce titre, le Javascript et en particulier le composant Prototype est de plus en plus sollicités en tant que déclencheurs assez sophistiqués des contrôleurs, relayés par le protocole HTTP classique.
Alias

modèle, vue, contrôleur


Dernièrement modifié par lryo10164 points  , Basé sur le travail de Fabien2043 points  et mytto14456 points  .
Modifiée dernièrement le vendredi 12 de février, 2010 13h11m45.

Sponsors privilégiés

Mediboard project