Logo de Cecil Cecil
Sur cette page

Fonctions

Fonctions peut être appelée pour générer du contenu. Les fonctions sont appelées par leur nom suivi de parenthèses (()) et peuvent avoir des arguments.

url

Crée une URL valide pour une page, une entrée de menu, un actif, un ID de page ou un chemin.

{{ url(value, {options}) }}
Options Descriptif Tapez Par défaut
canonique Préfixez l'URL avec baseurl ou utilisez canonical.url s'il existe. booléen false
formats Définit la page format de sortie (par exemple : json). chaîne html
langue Définit la page langue (ex. : fr). chaîne nul

Exemples :

{# page #}
{{ url(page) }}
{{ url(page, {canonical: true}) }}
{{ url(page, {format: json}) }}
{{ url(page, {language: fr}) }}
{# menu entry #}
{{ url(site.menus.main.about) }}
{# asset #}
{{ url(asset('styles.css')) }}
{# page ID #}
{{ url('page-id') }}
{# path #}
{{ url('about-me/') }}
{{ url('tags/' ~ tag) }}

html

Crée un élément HTML à partir d'un actif (ou d'un tableau d'actifs avec des attributs personnalisés).

{{ html(asset, {attributes}, {options}) }}
{# dedicated functions for each common type of asset #}
{{ css(asset) }}
{{ js(asset) }}
{{ image(asset) }}
{{ audio(asset) }}
{{ video(asset) }}
Options Descriptif Tapez
attributs Ajoute le couple name="value" à l'élément HTML. tableau
options {preload: boolean} : préchargements.
Pour les images :
{formats: array} : ajoute des formats alternatifs.
{responsive: bool|string} : ajoute des images réactives (basées sur width ou des pixels density).
{placeholder: string} : remplit l'arrière-plan de l'image avant son chargement (color ou lqip).
tableau

Exemples :

{# CSS with an attribute #}
{{ html(asset('print.css'), {media: 'print'}) }}
{# CSS with an attribute and an option #}
{{ html(asset('styles.css'), {title: 'Main theme'}, {preload: true}) }}
{# Array of assets with media query #}
{{ html([
  {asset: asset('css/style.css')},
  {asset: asset('css/style-dark.css'), attributes: {media: '(prefers-color-scheme: dark)'}}
]) }}
{# JavaScript #}
{{ html(asset('script.js')) }}
{# image without specific attributes nor options #}
{{ html(asset('image.png')) }}
{# image with specific attributes, responsive images and alternative formats #}
{{ html(asset('image.jpg'), {alt: 'Description', loading: 'lazy'}, {responsive: true, formats: ['avif', 'webp']}) }}
{# image with responsive pixels density images #}
{{ html(asset('image.jpg'), options={responsive: 'density'}, attributes={width: 256}) }}
{# image with a Low-Quality Image Placeholder #}
{{ html(asset('image.jpg'), {alt: 'Description', loading: 'lazy'}, {placeholder: 'lqip'}) }}
{# Audio #}
{{ html(asset('audio.mp3')) }}
{# Video #}
{{ html(asset('video.mp4')) }}

readtime

Détermine le temps de lecture d'un texte, en minutes.

{{ readtime(value) }}

Exemple:

{{ readtime(page.content) }} min

hash

Calcule le hachage d'un objet, d'un tableau ou d'une chaîne avec un algorithme donné.

{{ hash(value, algorithm) }}

algorithm peut être n'importe quel algorithme pris en charge par la fonction hash() de PHP (par exemple : md5, sha256, etc.). La valeur par défaut est xxh128.

Exemple:

{{ hash('my string', 'sha256') }}

cache_key

Calcule une clé de cache pour fragments cache en fonction d'un nom et d'une valeur facultative.

{% cache cache_key(name, value) %}
  {# cacheable content #}
{% endcache %}

La fonction ajoute un hachage de la valeur (peut être une chaîne, un tableau ou un objet) au nom (ainsi que la langue actuelle et l'ID de build pour être sûr que la clé de cache générée est unique), donc si la valeur est modifiée, la clé de cache est également modifiée et le cache est automatiquement vidé.

getenv

Obtient la valeur d'une variable d'environnement à partir de sa clé.

{{ getenv(var) }}

Exemple:

{{ getenv('VAR') }}

dump

La fonction dump affiche les informations sur une variable de modèle. Ceci est surtout utile pour déboguer un modèle qui ne se comporte pas comme prévu en introspectant ses variables :

{{ dump(user) }}

d

La fonction d() est la version HTML de dump() et utilise le Symfony VarDumper Component en arrière-plan.

{{ d(variable, {theme: light}) }}
  • Si variable n'est pas fourni, la fonction renvoie le contexte Twig actuel
  • Les thèmes disponibles sont « clair » (par défaut) et « sombre »