Les cadriciels (frameworks) PHP

Structure Modèle-Vue-Contrôleur

Le modèle établit la correspondance entre la classe, dont l'objet est une instance, et la table dans la base de données, dont chaque ligne, appelée également n-tuple, correspond à une instance. Le modèle (une simple classe PHP) définit les propriétés, dont chacune correspond à une colonne de la table, et les fonctions qui permettent d'accéder à ces propriétés.

Le contrôleur gère l'instanciation des objets et leur hydratation (remplissage des propriétés avec les champs de la base ou les données d'un formulaire), tout ce qui touche à la création, la visualisation, la modification, la suppression, en anglais le "CRUD" Create, Read, Update, Delete. Le contrôleur déclenche l'affichage des vues.

La vue est la page HTML affichée par le navigateur, elle peut-être un formulaire pour un objet nouveau ou à modifier, l'affichage d'un objet en particulier (tout ou partie de ses propriétés), l'affichage d'une liste d'objets, un menu... Ou tout autre chose en cas de besoin!

Le routage

Les liens présents dans les vues ne sont pas des liens HTML vers d'autres "pages" ou vues, ce sont des routes. La route indique quelle fonction de contrôleur doit être effectuée, quand bien mëme la seule fonction est d'afficher une autre vue. J'ai mis "pages" entre guillemets car il n'y a pas à proprement parler de pages HTML stockées dans des dossiers, mais une application qui génère dynamiquement la page affichée dans le navigateur, au moyen le plus souvent de templates.

La route est constituée de cinq éléments: un nom (facultatif parfois, mais hautement recommandé), une méthode (GET, POST...), une URL à afficher (qui contrairement aux URLs des sites statiques, n'a pas de liens avec l'architecture physique, c'est à dire les dossiers), des paramètres éventuellement, qui seront transmis dans l'URL, et la fonction du contrôleur que l'on doit utiliser, le clic sur le lien-route est l'appel de cette fonction.

Ces routes doivent être déclarées quelque part pour être utilisées dans les vues, ce peut-être dans un ou plusieurs fichiers dédiés (PHP ou autre langage), ou directement dans le contrôleur (annotations).

Les templates

Les templates sont des sortes de canevas qui indiquent comment vont être structurés et présentés les éléments transmis par le contrôleur. Ils sont emboitables les uns dans les autres, on a généralement un template appelé "layout" qui concerne ce qui est commun à plusieurs vues.

PHP est lui-même un langage de templates, puisqu'on peut inclure des fichiers les uns dans les autres au moyen de la fonction "include" et ainsi générer une page HTML. Ce présent site est construit comme ça, même si vous ne pouvez voir que les pages HTML. Mais les frameworks utilisent généralement des langages de templates spécifiques plus élaborés.

L'architecture

Les frameworks sont organisés: des dossiers séparés pour le code, les ressources accesssibles au public, la gestion de la base de données, les bibliothèques. La partie backend (administration du site) peut être séparée de la partie frontend (ce qui est accessible par l'utilisateur lambda). Des bonnes pratiques permettent de savoir à quel endroit doit être placé chaque élément de code, ce qui fait que les cadriciels facilitent le travail en équipe.

Textes et dessins de Christine Zedday
Photos Christine Zedday, Alain et Hélène Bache, Boujemaa, Leïla et Nora Zedday

Cette page a été générée automatiquement par Imageur

CSS Valide !