-
Notifications
You must be signed in to change notification settings - Fork 0
/
MemTwig.txt
106 lines (57 loc) · 2.22 KB
/
MemTwig.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
------------------------------ Twig --------------------------------------------
variable
-> {{ var }} [ <--> <?php echo $var; ?> ]
-> {{ array['key'] }} ou {{ array.key }}
-> {% set var = "v" %}
-> variable globale app avec les champs app.request, app.session, app.environnement,
app.debug, app.user.
-> déf de variagle globale dans app/config/config.yml
twig:
globals:
var1: %glo_value%
# ...
et app/config/parameters.yml
twig:
globals:
glo_value: 125
environnements
-> {{ }} affiche qqchose
-> {% %} fait qqchose
-> {# #} commentaires
filtre
-> ~ fonction
-> variable|filter pour appliquer un filtre a une variable
-> ex : lower, upper, title, length, escape/e ...
-> filtrage en bloc {% filter filtre %} ... {% endfilter %}
-> {{ date|date('d/m/y') }}, date est une instance de DateTime.
-> {{ texte|length }} donne la longueur
http://twig.sensiolabs.org/doc/filters/index.html
commentaire
-> {# ... #}
conditions
-> {% if condition %} ... {% elseif condition %} ... {% else %} ... {% endif %}
-> is defined, is divisibleby, is empty,
-> {% if var is empty %} ... {% endif %}
boucles
-> {% for i in 0..50 %} ... {% endfor %}
-> {% for lettre in 'a' .. 'z' %} ... {% endfor %}
-> {% for joueur in club %} ... {% endfor %}
-> for conditionnels (for joueur in club if joueur is not empty)
inclusion
-> {% include 'header.twig' %}
-> {% ... with {'var' : 'val'} only %} -> limite l'inclusion à var
-> inclusion conditionnelle {% include A ? 'a.twig' : 'b.twig' }
-> {% include(...) %}
-> inclusion de contrôleur {{ render(controller("..")) }}
notion d'héritage
-> template pere (souvent layout.twig.html) que l'on met a la racine des views
-> définitions des "zones à combler" par les fils dans les balises
{% block nom %} valeur par def {% endblock %}
-> dans un fils {% extends "NomBundle::layout.html.twig" }}
-> et on redefinit les {% block nom %} remplissage {% endblock %}
-> modèle triple héritage
-- layout général (au dessus des bundle) dans /app/Resources/views/layout.html.twig
on l'appelle avec ::layout.html.twig
-- layout du bundle
-- template de page
-> inclusion != héritage