case |
Cas |
|---|---|
| Liquid (Microsoft) | |
Syntaxe
|
{% case expression %} {% when valeur1 %} ... contenu pour valeur1 ... {% when valeur2 %} ... contenu pour valeur2 ... {% else %} ... contenu par défaut ... {% endcase %} |
Paramètres
| Nom | Description |
|---|---|
| expression | Ce paramètre permet de spécifier une variable ou une expression dont la valeur sera comparée aux différentes valeurs définies dans les blocs when. |
| when | Ce paramètre permet de définir une ou plusieurs valeurs à comparer à l'expression. Si une correspondance est trouvée, le contenu associé est exécuté. |
| else | Ce paramètre permet de définir un bloc de contenu qui sera exécuté uniquement si aucune des valeurs du when ne correspond à l'expression. |
Description
Cette balise permet de comparer une variable à plusieurs valeurs possibles, à la manière d'un switch en programmation.
Remarques
- Équivalent du switch en programmation : La balise case fonctionne comme une structure conditionnelle de type switch, bien connue dans de nombreux langages. Elle permet de simplifier la lecture du code en évitant des chaînes complexes de if, elsif et else, surtout quand on compare une même variable à plusieurs valeurs possibles.
- Comparaison directe avec plusieurs valeurs : L'expression fournie dans le bloc case est comparée directement aux différentes valeurs définies dans les balises when. Cela permet de traiter différents cas selon une même variable, comme un statut ("actif", "inactif", "en attente") ou un type ("client", "admin", "invité").
- Bloc else pour un comportement par défaut : La balise else est facultative mais fortement utile, car elle garantit qu'un contenu sera exécuté même si aucune des conditions définies dans les when ne correspond. Cela assure un comportement prévisible, même dans les cas non anticipés.
- Syntaxe claire et bien structurée : La syntaxe de case est lisible et propre, avec un découpage clair entre les différents blocs when. Cela facilite la maintenance du code, surtout dans des fichiers Liquid complexes ou partagés entre plusieurs développeurs.
- Ne prend pas en charge les opérateurs logiques : Contrairement à la balise if, le case en Liquid ne permet pas l'utilisation directe d'opérateurs logiques (and, or, >, <,...). Les when ne comparent que des valeurs égales à l'expression. Pour des conditions plus complexes, il faut utiliser des blocs if.
- Évaluation stricte des correspondances : Les comparaisons effectuées par when sont basées sur l'égalité simple. Cela signifie qu'une correspondance exacte est requise (par exemple, "5" ne correspond pas à 5). Il est donc important de bien contrôler les types de données lors des comparaisons.
- Utilisation dans des contextes dynamiques : On peut utiliser la balise case pour personnaliser dynamiquement le rendu d'une page selon un rôle utilisateur, une langue, un type de produit, etc. Cela rend les modèles Liquid adaptables sans avoir à dupliquer des blocs entiers avec des if.
- Pas de prise en charge des plages ou listes : Il n'est pas possible de spécifier une plage ou une liste de valeurs directement dans un seul when. Chaque valeur possible doit être définie dans un when séparé. Pour gérer plusieurs cas similaires, il est recommandé de dupliquer les blocs ou d'utiliser un if plus souple.
Dernière mise à jour : Mercredi, le 23 Juillet 2025