framework-web:symfony:templates

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
framework-web:symfony:templates [2018/01/30 01:02] – [Blocks] jcheronframework-web:symfony:templates [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 106: Ligne 106:
 C'est ainsi que Twig permet de structurer un ensemble de pages, en uniformisant la présentation et en évitant les répétitions de code. C'est ainsi que Twig permet de structurer un ensemble de pages, en uniformisant la présentation et en évitant les répétitions de code.
  
-==== Héritage ====+==== Héritage et blocs ====
  
 Soit le template principal suivant : Soit le template principal suivant :
Ligne 165: Ligne 165:
 ==== Inclusion ==== ==== Inclusion ====
  
 +Soit le template suivant affichant le détail d'un article :
  
 +<sxh html;title:templates/article/article_details.html.twig>
 +<h2>{{ article.title }}</h2>
 +<h3 class="byline">by {{ article.authorName }}</h3>
  
 +<p>
 +    {{ article.body }}
 +</p>
 +</sxh>
  
 +Il est possible de réutiliser ce template pour afficher la liste des articles, par inclusion :
  
 +<sxh html;title:templates/article/list.html.twig>
 +{% extends 'layout.html.twig' %}
 +
 +{% block body %}
 +    <h1>Recent Articles<h1>
 +
 +    {% for article in articles %}
 +        {{ include('article/article_details.html.twig', { 'article': article }) }}
 +    {% endfor %}
 +{% endblock %}
 +</sxh>
 +
 +
 +===== Liens =====
 +
 +Soit la route suivante définie dans le contrôleur Welcome :
 +
 +<sxh php;title:src/Controller/WelcomeController.php>
 +use Symfony\Component\Routing\Annotation\Route;
 +
 +class WelcomeController extends Controller
 +{
 +    /**
 +     * @Route("/", name="welcome")
 +     */
 +    public function index()
 +    {
 +        // ...
 +    }
 +}
 +</sxh>
 +
 +Il est possible de générer l'url correspondant à cette route en passant à la fonction **path** la propriété **name** de la route : welcome
 +<sxh html;gutter:false>
 +<a href="{{ path('welcome') }}">Home</a>
 +</sxh>
 +
 +
 +Génération de route avec paramètres :
 +
 +<sxh php;title:src/Controller/ArticleController.php>
 +use Symfony\Component\Routing\Annotation\Route;
 +
 +class ArticleController extends Controller
 +{
 +    /**
 +     * @Route("/article/{slug}", name="article_show")
 +     */
 +    public function show($slug)
 +    {
 +        // ...
 +    }
 +}
 +</sxh>
 +
 +<sxh html;title:templates/article/recent_list.html.twig>
 +{% for article in articles %}
 +    <a href="{{ path('article_show', {'slug': article.slug}) }}">
 +        {{ article.title }}
 +    </a>
 +{% endfor %}
 +</sxh>
 +
 +Génération d'url absolue, à partir de la function **url()** :
 +
 +<sxh html>
 +<a href="{{ url('welcome') }}">Home</a>
 +</sxh>
  
  • framework-web/symfony/templates.1517270533.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)