Actions

Modèle-Vue-Contrôleur

From Joomla! Documentation

This page is a translated version of a page Model-View-Controller and the translation is 100% complete.

Other languages: català 86% • ‎English 100% • ‎español 100% • ‎français 100% • ‎Bahasa Indonesia 100% • ‎日本語 100% • ‎Nederlands 100% • ‎Kiswahili 100%

Joomla! reprend largement dans sa conception l'architecture Modèle-Vue-Contrôleur.

Lorsque Joomla! traite la requête d'un utilisateur, comme un "GET" pour une page en particulier, ou un "POST" contenant des données de formulaire, une des premières actions de Joomla! est d'analyser l'URL pour déterminer quel composant devra traiter la demande et prendre le contrôle de ce composant.

Si le composant a été conçu selon l'architecture MVC, la requête va passer au contrôleur. Le contrôleur va alors analyser la demande et déterminer quels Modèles seront nécessaires pour la traiter, et quelle Vue devrait être utilisée pour retourner les résultats à l'utilisateur.

Le Modèle encapsule les données utilisées par le composant. Dans la plupart des cas, ces données proviendront d'une base de données, soit la base de données Joomla!, soit une base de données externe, mais il est également possible au Modèle de récupérer des données provenant d'autres sources, comme via une API de services Web s'exécutant sur un autre serveur. Le Modèle est également, le cas échéant, chargé de la mise à jour de la base de données. Le rôle du Modèle est d'isoler le Contrôleur et la Vue des tâches de récupération ou de modification des données.

La Vue est en charge de la génération du rendu qui sera envoyé au navigateur par le composant. Elle appelle le Modèle pour toute information nécessaire et le met en forme de façon appropriée. Par exemple, une liste de données extraites d'un Modèle pourra être intégrée dans un tableau HTML généré par la Vue.

Joomla! étant conçu pour être hautement modulaire, le rendu d'un composant ne représente généralement qu'une partie de la page web complète que l'utilisateur verra au final. Une fois que la Vue a généré le rendu, le composant rend le contrôle au Framework Joomla! qui va charger et exécuter le template. Le template combine le rendu du composant et de tous les modules actifs sur la page en cours, de sorte que le navigateur puisse tout afficher sur une même page.

Afin de fournir plus de puissance et de flexibilité aux concepteurs de sites web, généralement plus concernés par la création de nouveaux designs que par la manipulation du code sous-jacent, Joomla! a divisé la Vue traditionnelle en une Vue et une Mise en page (Layout). La Vue récupère les données du Modèle, comme dans une architecture MVC traditionnelle, mais rend simplement ces données disponibles pour la mise en page, qui gère la mise en forme des données pour la présentation à l'utilisateur. L'avantage de cette séparation est que le système de template de Joomla! fournit, dans le template, un mécanisme simple pour la substitution de mises en page. Ces substitutions de mise en page (généralement nommées "template override" car faisant partie du template, bien que seule la mise en page ne soit substituée) sont liées au template et donnent au concepteur de template le contrôle total sur tout le rendu provenant du Core Joomla! et de toutes les extensions tierces installées et conformes à l'architecture MVC.



Voir également

Série développement de Composant

Développer un Composant MVC pour J3.x

Introduction au développement MVC pour J3.x

Développer un Composant MVC pour J2.5

Introduction au développement MVC pour J2.5