Comment choisir son framework : view / layout – Symfony 2

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 : Symfony 2
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:
layoutViewSite

On peut voir 4 zones:

  • Le bandeau
  • La navigation des catégories
  • La navigation des derniers posts
  • Le contenu dynamique

layoutViewSite2

Le layout
Pour afficher la page d’accueil, on appelle la classe controller PostController:
/src/Acme/BlogBundle/Controller/PublicController.php
tree-module-public

Il n’y a pas d’indication sur le layout à charger ici, il est précisé plus tard dans la vue

La/les vues
Lorsque l’on regarde l’action appelée pour afficher cette page d’accueil:
code-module-public-index
Qui appelle la méthode listPosts()
code-module-public-listPost

On peut lire ici que l’on appelle la vue:
/src/Acme/BlogBundle/Resources/views/Public/index.html.twig
tree-view-blogPublicIndex

code-view-blogPublicIndex

On peut lire en amont de cette vue que l’on étend la vue AcmeBlogBundle:Public:layout.html.twig
Voyons à quoi ce layout ressemble:
Pour information, il se situe ici:
/src/Acme/BlogBundle/Resources/views/Public/layout.html.twig
tree-layout

code-layout

On retrouve ici un appel d’extension du layout base.html.twig
/app/Resources/views/base.html.twig
tree-layout-base

code-layout-base

On voit également l’affichage du layout AcmeBlogBundle:Public:sidebar
/src/Acme/BlogBundle/Resources/views/Public/sidebar.html.twig
tree-layout-sidebar

codelayout-sidebar

La syntaxe {{ render(controller(‘AcmeBlogBundle:Public:sidebar’)) }} dans le layout indique qu’il appelle la méthode sidebarAction du module public
/src/Acme/BlogBundle/Controller/PublicController.php
tree-module-public

code-controller-sidebar

Retour au sommaire

Laisser un commentaire