Vues
-
! Le contenu de cet article n’a pas été mis à jour et peut ne pas correspondre à la version actuelle du Framework. Attention notamment aux exemples qui ne sont plus applicables tels quels !
Les vues définissent ce avec quoi tous les participants extérieurs au logiciel interagissent : cela inclue en premier lieu l’utilisateur via l’ IHM (interface homme machine), à travers des interfaces utilisateurs présentant les données et intégrant de nouvelles données suite aux interactions de l’utilisateur (clavier, souris, etc.), mais aussi tout programme externe qui devra récupérer ou intégrer des données à travers des API (interface de programmation d’application).
On distinguera dans le processus de vue :- Le moteur de vue View_Engine : en général une librairie de fonctionnalités aidant à la génération du code adapté à la vue, comme le Html_View_Engine qui se charge de trouver le template HTML (Gabarit) à appliquer à un objet, ou de générer les URI au format HTML correspondant à un objet et une fonctionnalité,
- La vue IView, une classe qui génère la visualisation des données à partir des données qui lui sont confiées, comme le Html_View ; à défaut d’implémentation de vue, la vue par défaut du moteur de vue est utilisée, comme la classe Html_Default_View pour le moteur de vue Html_View_Engine,
- Pour certains moteurs de vue, des gabarits peuvent être utilisés, offrant des patrons prêts à recevoir les données, directement dans le format attendu ou dans un format intermédiaire qui facilite la mise en forme. Pour les vues HTML, un gabarit est un fichier HTML où les données sont nommées par leurs noms qui sera remplacé par du contenu par la classe de traitement des templates interne Html_Template, ou un moteur de templates tel que Smarty,
- Il arrive également qu’on sépare l’organisation des données dans les gabarits de la partie purement décorative de la présentation, par exemple à l’aide de feuilles de style CSS dans le cas de vues HTML ; ces feuilles de style permettent la personnalisation graphique de l’application, appelée skin.
Configuration
La section de configuration ITRocks\Framework\View définit le moteur de vue par défaut, utilisé par l’application pour l’interface avec l’utilisateur.
Le framework est configuré par défaut pour appliquer les vues au format HTML via un navigateur web, comme le montre cet extrait du fichier config.php :
$config['framework'] = array( ITRocks\Framework\View::class => [ Configuration::CLASS_NAME => ITRocks\Framework\Html_View_Engine::class, 'css' => 'default' ] );
Ces réglages indiquent que le moteur de vue principal générera du HTML, en utilisant le skin CSS defaut, correspondant aux CSS et images stockées dans le dossier skins/default/ de votre application, où à défaut du framework.
Gabarits
A défaut de tout gabarit développé, des gabarits d’affichage par défaut sont proposées pour les principales fonctionnalités gérées par le framework. Pour développer un gabarit HTML spécifique, il convient de le nommer :- Class_feature.html pour un gabarit correspondant à une fonctionnalité feature de la classe métier Class,
- Default_feature.html ou feature.html pour le gabarit par défaut de la fonctionnalité feature, applicable à toutes les classes métier qui n’ont pas leur propre gabarit,
- Default_view.html pour le gabarit par défaut à appliquer à tous les couples classe-fonctionnalité qui n’auraient pas de template adapaté parmi ceux ci-dessus. TODO
En vue HTML standard, il n’est pas nécessaire de reprogrammer la vue si vous respectez ce nommage des gabarits : la vue HTML par défaut Html_Default_View se charge de retrouver le template adapté pour la classe, les classes parentes, avec la fonctionnalité demandés et de le parser avec les données objets reçues du contrôleur.
Vue
Pour programmer une vue, il faut suivre ces règles de nommage de classe PHP, en remplaçant HTML dans les exemples ci-dessous par la racine du nom du moteur de template correspondant au moteur de vue utilisé :- Html_Class_feature.php pour une vue HTML de la fonctionnalité feature appliquée à la classe métier Class,
- Html_Class.php en appelant la méthode runFeature() où feature est la fonctionnalité demandée par le contrôleur, TODO
- Html_feature.php pour la vue commune à toutes les classes métier pour la fonctionnalité feature,
- Html_Default_View.php sera utilisée par défaut, en exécutant sa méthode runFeature() où feature est la fonctionnalité demandée par le contrôleur, TODO
- Html_Default_View.php enfin, en exécutant sa méthode run() quelle que soit la fonctionnalité demandée.
Moteur de vue
Le moteur de vue est choisir par le contrôleur au moment d’exécuter une vue.
S’il appelle la méthode statique View::run(), c’est le moteur de vue par défaut de l’application qui sera utilisé. Il pourra également pour certains traitements préférer exécuter une vue particulière instanciée pour l’occasion (exports PDF par exemple, IHM dans d’autres langages, etc.).