Sélectionner une page

“Le modèle-vue-contrôleur (en abrégé MVC, de l’anglais Model-View-Controller) est un patron d’architecture et une méthode de conception qui organise l’interface homme-machine (IHM) d’une application logicielle.” (définition Wikipedia)

Comment parler de Framework PHP sans énoncer la notion de MVC ?

Qu’est ce qu’un Framework ?

Un Framework est un outil qui regroupe tout un ensemble de fonctionnalités pré-existantes. Il vous permet de bénéficier d’une architecture d’application de base et offre ainsi aux développeurs un confort de conception grâce notamment à une facilité et à une rapidité de développement, à des conventions précises et à une décomposition de l’application méthodique et logique.

En règle général, un Framework est basé sur la structure dite MVC mais il n’est bien entendu pas obligatoire (par exemple jQuery), tout dépend de son utilité.

Décomposition de l’application

Le principe d’une telle structure est de diviser l’application en 3 parties distinctes :

  1. Les modèles : ils représentent les données de l’application et permettent l’interaction avec la base de données (ou les web services, etc…).
  2. Les vues : ce sont les représentations (les templates) des résultats de la requête que l’utilisateur a effectuée.
  3. Les contrôleurs : ils interceptent toutes les requêtes faites par les utilisateurs.

Un petit exemple

Pour mieux comprendre le fonctionnement d’un tel système voyons un petit exemple (basé sur l’explication de la documentation de CakePHP) d’application très simple :

  1. Un utilisateur connu sous le pseudonyme de Noisette clique sur le lien suivant : http://thegalsengeek.com/comprendre-la-notion-de-mvc.
  2. Le répartiteur (dispatcher) analyse l’URL (/comprendre-la-notion-de-mvc/) et transmet la requête au contrôleur concerné.
  3. Le contrôleur va exécuter la logique définie par l’application, ici il va donc aller récupérer l’article de la contribution correspondante.
  4. Le contrôleur utilise le modèle pour accéder aux données présentes en base de données qui correspondent à la contribution “Comprendre la notion de MVC”.
  5. Une fois les données récupérées par le contrôleur (grâce au modèle), celui-ci les renvoie à la vue permettant d’afficher le détail d’une contribution. L’affichage se fera en général au format HTML, mais il est aussi possible en fonction des besoins de retourner un PDF, un XML ou bien un objet JSON.
  6. Une fois que la vue a utilisé les données du contrôleur pour générer un affichage complet, celle-ci est retournée à l’utilisateur.

En principe, chaque requête faite sur votre application suivra ce schéma de base alors gardez bien ce principe de fonctionnement en tête.

Les avantages et inconvénients d’une telle architecture

Si vos besoins en terme de fonctionnalités et d’interactions ne sont pas très importants ou encore si vous devez réaliser une application statique, l’utilité d’une architecture MVC ne sera pas très appropriée. En effet, étant donné qu’il vous faut en général trois fichiers minimum par page, vous risquez de vous retrouver avec plus de fichiers que ce dont vous avez réellement besoin. De plus, vous ne ferez qu’alourdir une application destinée à être très simple et légère.

Par contre, si votre application justifie l’utilité du MVC, grâce à cette séparation en trois parties très différentes, vous bénéficierez d’une clarté certaine de l’architecture. En effet, lors d’une maintenance, il ne sera pas forcement nécessaire d’aller modifier la vue s’il s’agit uniquement de rajouter un critère de sélection dans une requête SQL.

A l’inverse, il sera très facile pour un intégrateur (ou pour vous même) d’aller modifier le design de votre application sans avoir à agir sur les scripts de traitement des données.

Quelques Framework PHP basés sur le modèle MVC

Voici une petite liste des Framework PHP open source les plus connus et utilisés du moment :

  1. Symfony
  2. CakePHP
  3. Codeigniter
Partagez cet article: