Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
Symfony

Utiliser des variables sous Symfony

Un cours complet pour maîtriser Utiliser des variables sous Symfony.

0 chapitres 0 QCM Accès gratuit
  1. Objectifs

    • Comprendre l'utilisation des variables dans Symfony
    • Savoir manipuler les variables
  2. Présentation

    • Pour afficher des données dans une vue Symfony, on utilise la syntaxe Twig. Il est possible de passer un nombre, une chaîne de caractères ou même le résultat d’une fonction.
    • Différentes données affichées
      <p>{{ une_variable }}<p>
      <p>{{ 'une chaine' }}</p>
      <p>{{ 'maintenant'|date('U') }} secondes depuis le 01/01/1970</p>
    • En coulisse, Twig assure la sécurité de l'affichage en échappant les données par défaut pour prévenir les attaques XSS.
  3. Équivalent PHP de la syntaxe {{ var }}
    • Sous Symfony, le code Twig :
    • {{ var }}
    • Est équivalent à ce code PHP :
    <?php
        echo htmlentities(
            $var,
            ENT_QUOTES | ENT_SUBSTITUTE,
            'UTF-8'
        );
    ?>
  1. Transmettre des données à afficher dans Symfony

    • Symfony propose différentes manières de transmettre des données à une vue. Nous pouvons transmettre des données directement à partir des contrôleurs.
    • Voici quelques-unes des façons dont nous pouvons transmettre des données à la vue :
    • Utilisation du système de rendu Passage de variables dans le rendu Utilisation du contrôleur
  2. Utilisation du système de rendu

    • Généralement, il est préférable d’éviter de réaliser les traitements directement dans les vues, particulièrement dans le contexte du patron de conception modèle-vue-contrôleur qui est celui utilisé par Symfony.
    • Ainsi, les traitements des données auront lieu dans les contrôleurs. Pour adresser une ou plusieurs variables à une vue, il faut transmettre ces variables lors du rendu de la vue.
    • Les variables transmises depuis le contrôleur sont accessibles dans la vue et peuvent être affichées à l'aide de la syntaxe Twig.
    • Exemples
    • Dans le contrôleur
    // src/Controller/WelcomeController.php
    
    namespace App\Controller;
    
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\HttpFoundation\Response;
    
    class WelcomeController extends AbstractController
    {
        public function welcome(): Response
        {
            $name = 'Laure';
            $date = date('d/m/Y');
            $meteo = $this->getMeteo(); // Méthode pour obtenir la météo
    
            return $this->render('welcome/index.html.twig', [
                'name' => $name,
                'date' => $date,
                'meteo' => $meteo,
            ]);
        }
    
        private function getMeteo(): string
        {
            // Méthode pour obtenir la météo
            return 'ensoleillé';
        }
    }
    
  3. Dans la vue
  4. {# templates/welcome/index.html.twig #}
    
    <h1>Bienvenue {{ name }}</h1>
    <p>
      Nous sommes le {{ date }} et il fait {{ meteo }}
    </p>