Templating Twig
Syntaxe
Exemples de base :
{{ foo.bar }}
variable{% set foo = 'foo' %}
affectation de variable{{ name|striptags|title }}
filtres{% for item in items %}...{% endfor %}
boucle sur des élements- le reste sur la documentation officielle
Les templates
Si vous voulez utiliser des templates twig non accessibles depuis le dossier public, vous devez utiliser un
dossier de templates à part dans la config du site via le paramètre path_templates
.
Ce dossier a comme nom de namespace twig templates
.
Si vous n'utilisez pas de namespace, twig cherchera les fichiers dans le dossier path_public
Exemple d'héritage de template : {% extends "@templates/base.twig" %}
Fourni avec ce projet de site
Variables
description | exemple | résultat | |
---|---|---|---|
app |
variable du conteneur de services | ||
app.counter |
service qui gère le calcul d'un pseudo nombre de visites uniques par IP | {{ app.counter }} |
7 |
app.db |
objet de db qui permet d'accéder à toutes les tables yaml | {{ app.db.table('persons').get(10).name }} |
Lindon |
{{ app.db.table('persons')|length }} |
100 | ||
app.logger |
pour logger des choses | {{ app.logger.info('Hello World !') }} |
|
app.request |
objet ServerRequestInterface de la PSR-7 HTTP message interfaces |
{{ app.request.uri.path }} |
/pages/templating |
{{ app.request.uri }} |
https://simplesite.arnapou.net/pages/templating | ||
app.router |
objet HttpRouteHandler de arnapou/psr |
{{ app.router.generateUrl('static_page', { path: 'pages/templating' }) }} |
/pages/templating |
{{ app.router.generateUrl('static_dir', { path: 'pages' }) }} |
/pages/ | ||
app.config |
config du site | {{ app.config.name }} |
Arnapou simple site |
{{ app.config.log_max_files }} |
7 |
Fonctions
description | exemple | résultat | |
---|---|---|---|
asset |
calcule le chemin d'un asset | {{ asset('../assets/twig.png') }} |
/../assets/twig.png |
path |
calcule le chemin d'un lien (équivalent plus simple que app.urlgenerator ) |
{{ path('static_dir', { path: 'pages' }) }} |
/pages/ |
{{ path('static_page', { path: 'pages/templating' }) }} |
/pages/templating | ||
path_dir |
raccourci de path('static_dir', ...) |
{{ path_dir('pages') }} |
/pages/ |
path_page |
raccourci de path('static_page', ...) |
{{ path_page('pages/templating') }} |
/pages/templating |
thumbnail |
transforme le chemin d'une image vers celui de sa miniature | {{ thumbnail('../assets/twig.png', 50) }} |
/../assets/twig.50.png |
Filtres
description | exemple | résultat | |
---|---|---|---|
thumbnail |
transforme le chemin d'une image vers celui de sa miniature | {{ '../assets/twig.png'|thumbnail(50) }} |
/../assets/twig.50.png |
emojis |
affiche des emojis pour certains textes | {{ ':)'|emojis }} |
😊 |
à utiliser plutôt sur des gros textes |
|
😄 😄 😊 😊 😕 😕 😞 😞 😁 😁 😮 😮 😎 😐 😔 😭 😭 😉 😉 ❗ ❓ 😆 😆 🡆 😃 😲 😲 😲 😈 ❓ 😈 😱 |