Définir des variables dans le modèle

Jusqu’ici, les variables étaient définies dans le code C# derrière puis utilisées dans les modèles. Il est aussi possible de déclarer des variables directement dans le modèle avec la directive set.

1. Définir des variables avec #set()

Deux manières de déclarer des variables :
Méthode 1 : définir les variables au préalable dans le code backend C#/Java et les lire dans le modèle ;
Méthode 2 : définir directement dans le modèle à l’aide de #set() (point clé de cette leçon)

#set($name = "hello foxdevelop.com")
#set($okay = "common baby")
#set($nameokay = "$name|$okay")Langage du code : PHP (php)
  • #set(variable = valeur) prend en charge chaînes, nombres, tableaux, propriétés d’objets et affectations depuis d’autres variables
  • Typage faible, pas besoin de déclarer le type des variables

2. Deux syntaxes et règles d’affichage des variables

2.1 Formes de base

  • $name : si la variable n’existe pas, affiche littéralement $name
  • $!name : rendu silencieux ; affiche du vide si la variable est absente (recommandé pour éviter des textes parasites $xxx sur la page)
  • Syntaxe standard recommandée : ${name} (les accolades délimitent explicitement la variable)

2.2 Exemple de problème de délimitation

#set($name = "hello")
$namehello     × le moteur interprète cela comme variable $namehello introuvable
${name}hello   √ correct : résout $name puis concatène le texte helloLangage du code : PHP (php)

3. Commentaires sur une ligne ##

## Ceci est un commentaire, il n’apparaîtra pas dans le rendu final
#set($name = "test") ## les commentaires en fin de ligne sont autorisésLangage du code : PHP (php)
  1. Le contenu des commentaires n’est pas envoyé dans la page générée ;
  2. Les commentaires ne sont pas visibles dans la source de la page dans le navigateur (supprimés au traitement du moteur de modèle).

4. Types d’affectation pris en charge par #set

## Affectation de chaîne
#set($name = "hello world")

## Copier une variable dans une autre
#set($obj= $name)

## Affecter des propriétés d’objet
#set($obj.Friend = "monica")
#set($obj.Blame = $whitehouse.Leak)

## Appeler une méthode et affecter son résultat
#set($obj.Plan = $spindoctor.weave($web))

## Affectation numérique
#set($obj.Number = 123)

## Affectation de tableau
#set($obj.Say = ["Not", $my, "fault"])Langage du code : PHP (php)

5. Règles spéciales quand une variable n’existe pas

$sadfsdfsdLangage du code : PHP (php)

Lorsque le moteur de modèle ne trouve pas la variable :

  • Syntaxe simple $sadfsdfsd : affiche le texte littéral $sadfsdfsd
  • Avec $!sadfsdfsd : renvoie une chaîne vide si la variable est absente

Définir des variables dans le modèle

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *