Site nooSFere

Architecture MVC

Les fichiers du site sont structurés de manière à séparer trois aspects indépendants requis pour afficher une page :

  1. la logique nécessaire pour sélectionner les éléments à afficher et effectuer des traitements éventuels sur eux ;
  2. l'accès aux données ;
  3. le rendu en HTML, c'est à dire la construction de la page elle-même.

Cette façon d'isoler les responsabilités est nommée Modèle MVC pour Modèle-Vue-Contrôleur. Non seulement elle procure une meilleure clarté du code, et une plus grande indépendance des différents composants, mais elle permet aussi à chacun de travailler plus facilement sur le domaine sur lequel il est compétent : les requêtes à la base donnée ou la mise en page HTML/CSS par exemple.

Dans le cadre des sources du site de nooSFere , cela se traduit par une disposition des fichiers, une isolation de certaines fonctionnalités et l'usage d'un moteur de modèle .

Contrôleur

Sur le site, les Contrôleurs sont les fichiers explicitement demandés par l'utilisateur. index.html pour la page d'accueil ou /livres/editeurs.php pour la liste des éditeurs en sont deux exemples. Ces contrôleurs contiennent typiquement l'analyse des paramètres reçus, l'appel aux requêtes nécessaires pour rendre leur service, éventuellement des traitements sur les données à afficher, et se terminent toujours par une fonction fournissant le rendu de la page. À peu près tous les contrôleurs partagent des fonctionnalités communes : celles-ci sont constituées en une Bibliothèque de classes dans l'espace de nommage \Noo .

Modèle

Le modèle de nooSFere, c'est sa base de données. Sa consultation peut être très spécifique selon le contrôleur appelé, avec des requêtes optimisées pour son besoin, reposant souvent sur beaucoup de jointures. Certaines requêtes cependant peuvent être mutualisées. L'ensemble est disponible dans l'espace de nommage \Noo\Base , réparti dans des classes selon la base cible et le principal objet de la requête ; livres, auteurs, éditeurs, etc.

Vue

Tout ce qui est nécessaire ayant été fourni et traité par le contrôleur et le modèle, la mise en forme des données constitue la dernière étape du traitement d'une requête. Cette disposition de la page HTML est souvent dévolue à un moteur de modèle (template engine ), c'est à dire un outil qui permet de construire une page sur des modèles, ou gabarits.

Le site de nooSFere est écrit avec le langage PHP et PHP et lui-même un moteur de modèle . Les recommandations de style de PHP édictent d'ailleurs que chaque fichier doit contenir soit de la logique, soit de la représentation, mais pas les deux ; c'est à dire une séparation Contôleur/Vue. Cependant la syntaxe de PHP est encore trop verbeuse et peu adéquate pour des fonctionnalités avancées d'un moteur, par exemple la notion d'héritage. Ce projet exploite donc Twig pour le rendu des pages.

Search results