Introduction
Dans un précédent billet, je vous ai présenté l’initiative de grafikart: http://blog.developpez.com/ducodeetdulibre/p12482/outilsweb/comment-choisir-son-framework-php
Sur les prochains billets, nous allons détailler, analyser et comparer la manière de faire de chaque framework.
But de ce billet : MkFramework
Dans ce billet, nous allons essayer de comprendre comment s’organise la création de page avec chaque framework:
Pour rappel, dans un site web, on à un template général, appelé « layout », qui contient notre bandeau/logo, nos menus de navigation ainsi qu’une partie dynamique: le contenu de notre site.
Nous allons voir ici, comment ont choisi le layout à utiliser (on peut en avoir plusieurs), puis comment on intègre la navigation, et comment on choisit quel template de vue utiliser pour l’affichage de notre contenu.
Voilà la page que nous allons étudier ici:
On peut voir 4 zones:
- Le bandeau
- La navigation des catégories
- La navigation des derniers posts
- Le contenu dynamique
Le layout
Pour afficher la page d’accueil, on appelle la classe controller module_default:
/module/default/main.php
On voit ici que l’on instancie un objet layout « template1″, on voit également qu’il instancie deux modules, un pour les catégories et l’autre pour les derniers posts qu’il ajoute à l’emplacement « sidebar »
Voyons à quoi ce layout ressemble:
Pour information, il se situe ici:
/layout/template1.php
On retrouve ici le bandeau écrit directement dans le layout, un emplacement pour le contenu dynamique (qui contiendra le contenu) plus un autre pour la sidebar qui contiendra la navigation des catégories + celle des derniers posts
La/les vues
Lorsque l’on regarde l’action appelée pour afficher cette page d’accueil:
On voit que l’on assigne à l’emplacement « main » la vue retournée par le module posts.
Ce framework permet en effet d’appeler des modules « embedded », et de récupérer leur vues pour les imbriquer où bon nous semble.
Allons jetez un oeil à cette méthode _index() du module posts
Ceci est un controller de module embarqué, on inclue pas uniquement une vue de ce module mais tout le module posts: ainsi si on clique sur le lien d’un post (de la liste), le module embarqué affichera naturellement le détail de celui-ci. (il est autonome)
Par défaut, on voit que le second argument est « list »: on affichera donc par défaut la liste des posts avec la méthode _list() du module en question.
Regardons à quoi celle-ci ressemble:
Il instancie une vue post::lists, située ici :
/module/posts/view/list.php
Revenons à la méthode before() qui permettait d’ajouter les catégories et les derniers posts.
Les modules categories et posts étant des modules « embedded », vous comprenez mieux maintenant l’inclusion des vues de ces modules à l’emplacement de la sidebar.
Voici le code de la méthode list du module embarqué categories, on voit ainsi comment est géré le cache du menu
/module/categories/main.php