Index de l'article
Tutoriel composant joomla
Modèle MVC
Composant backend
Environnement de développement
Fichier manifest xml
Point d'entrée au composant
Comportement de JController
Conventions de nommage
Fichier Contrôleur
Fichier View
Template d'affichage
Base de données
Fichiers install.sql et uninstall.sql
Package d'installation
Contrôleur clients
Vue clients
Modèle Clients
Template d'affichage de la Vue clients
Contrôleur client
Modèle client
Méthode edit() du Contrôleur client
Vue client
Méthode getData() du Modèle client
Template d'affichage de la Vue client
Méthode save() du Contrôleur client
Méthode cancel() du Contrôleur client
Méthode store() du Modèle client
MVC de l'entité auto
MVC de l'entité location

Le Modèle MVC

Joomla! 1.5 utilise le Modèle MVC (Model-View-Controller) pour concevoir et construire des extensions.

Dans cette page, nous allons présenter ce Modèle MVC et plus tard lors de la conception de notre composant, nous allons montrer comment le mettre en oeuvre pour une parfaite compréhension.

Le Modèle MVC est une méthode de conception qui évite la duplication de code et facilite la maintenance. Il organise le code de telle sorte que :

  1. les données,
  2. la présentation et
  3. la logique métier

soient séparées.

Le Modèle MVC organise donc l'interface du composant en:

  1. un Modèle (pour l'accès aux données),
  2. une Vue (pour la présentation de l'interface utilisateur) et
  3. un Contrôleur (pour gérer la logique métier qui détermine la façon dont l'interface va réagir face à une entrée utilisateur)

Autrement dit, le MVC divise la conception en trois domaines fonctionnels. Cela permet de modifier si nécessaire un domaine fonctionnel du composant sans avoir à modifier les domaines restants.

Implémentration du MVC dans Joomla

Dans Joomla! chaque élément du Modèle MVC est représenté par une classe abstraite du framework joomla: JModel, JView, et JController de la bibliothèque 'joomla.application.component'. Ces classes mères seront étendues par héritage lors de la conception de notre composant.

Modèle

Le Modèle (Model) se charge de l'accès aux données. Il s'agit, dans la plupart des cas, d'accéder à une base de données Mysql. Cependant, l'utilisation de n'importe quelle source de données reste possible (exemple: les fichiers XML)

Un Modèle comporte des méthodes d'accès pour récupérer, ajouter, supprimer et mettre à jour les données stockées dans une source de données spécifique.

Un composant joomla peut avoir plusieurs Modèles, supportant chacun une source de données différente.

Toutes les techniques d'accès aux données sont encapsulées dans le Modèle. De cette manière, si votre application change de système de données en migrant d'une base Mysql vers un système de fichiers plats, seul le Modèle sera révisé. Le Contrôleur et la Vue ne subiront aucune modification.

Vue

La Vue (View) définit la façon dont vont être présentées les données à l'utilisateur pour que ce dernier puisse intéragir avec l'application.

Pour une application web, la Vue récupère les données du Modèle (le Modèle approprié est passé à la Vue par le Contrôleur) et les intègre dans un template (de mise en page) qui sera publié et présenté à l'utilisateur.

En addition au format HTML, une Vue peut présenter les données dans d'autres formats tels que PDF ou flux RSS. A une même Vue peut correspondre plusieurs templates d'affichage.

La Vue ne modifie en aucune circonstance les données mais affiche uniquement les données passées par le Modèle. Toutes les demandes de modification sont transmises par le Contrôleur au Modèle qui exécute cette modification.

Les données affichées dans une Vue proviennent d'un ou plusieurs Modèles. Ces Modèles sont automatiquement associés à la Vue par le Contrôleur.

Contrôleur

Le Contrôleur est le chef d'orchestre et l'élément chargé de répondre aux actions de l'utilisateur.

Le Contrôleur détermine la tâche demandée, crée une Vue, associe un ou plusieurs Modèles à la Vue et passe toute demande de modification de données au Modèle approprié. Ce dernier se charge de la manipulation des données. La Vue affiche, ensuite, le résultat mis en forme.

Le Contrôleur ne manipule pas les données mais plutôt, appelle les méthodes nécessaires du Modèle approprié.
Le Contrôleur ne publie pas les données mais plutôt crée une Vue qui se charge d'afficher les données.

Un composant peut comporter plusieurs Contrôleurs, un par entité à gérer. A chaque entité correspond une table dans la base de données.

Interaction entre domaines fonctionnels du MVCrelation-mvc.gif

Voyons maintenant comment intéragissent les domaines du MVC suite à une demande d'un utilisateur.

L'utilisateur soumet une demande au composant pour effectuer une tâche via le point d'entrée. Ce dernier détermine le Contrôleur qui sera utilisé.

Le Contrôleur crée la Vue et le Modèle associé en fonction de la tâche qui lui a été demandée par l'intermédaire du point d'entrée.

Chaque Vue peut avoir plusieurs templates (layouts) pour la mise en forme de l'affichage des données.

Bien entendu, un composant peut avoir plusieurs Contrôleurs, plusieurs Modèles et plusieurs Vues.

Une tâche soumise via le point d'entrée peut ne pas nécessiter de Modèle ou Vue.



 

Copyright © 2009-2012 apprendre-joomla.com - Tous Droits Réservés -