Видео также применимо для версии Symfony 5.

Подробнее про работу в Twig в этом курсе

Простая html-разметка внутри нашего шаблона Twig - это, конечно, хорошо, но на самом деле возможности шаблона Twig намного шире. 

Одно из самых главных преимуществ для чего это нужно - это передача внутрь этого шаблона каких-то переменных.

Давайте посмотрим, как можно значение какой-то php переменной перенести внутрь шаблона Twig, который мы создали. 

Давайте вернемся к контроллеру и внутри него создадим какую-нибудь временную переменную $tmp.

     /**
     * @Route("/main", name="main")
     */
    public function index()
    {
        $tmp ="Тест";
        return $this->render('main/index.html.twig', [
            'key' => $tmp
        ]);
    }

Переменная передается в шаблон как второй параметр для функции render.

Этот второй параметр обычный ассоциативный массив. 

Для того, чтобы получить значение переданной переменной внутри шаблона Twig, нужно воспользоваться двумя фигурными скобками и указать тот ключ, который мы передали в контроллере в массиве.

<html>
<head>
</head>
<body>
Это из Twig
<p>{{ key }}</p>
</body>
</html>

Таким образом, данные, которые имеются внутри контроллера, были переданы внутрь Twig шаблона. Разметка у нас в шаблоне получилась статичной, а данные внутри являются динамичными. Они изменяются и зависят от того, какое состояние имеет php функция.