Видео актуально для Symfony 7
Важно. Для работы шаблонизатора Twig может потребоваться установка дополнительного пакета, если он у вас еще не установлен
composer require template
В предыдущих видео мы посмотрели как можно отдавать HTML содержимое в качестве ответа в роуте.
Ответ мы выдавали с помощью специального класса
use Symfony\Component\HttpFoundation\Response;
Но, способ возврата HTML содержимого является не самым удобным и мы не можем гибко управлять такой структурой.
Для того, чтобы можно было гибко управлять html содержимым, которое будет возвращаться в качестве ответ в роуте, как правило, используют шаблонизатор.
По умолчанию, в Symfony используется шаблонизатор TWIG, но также можно использовать и другие шаблонизаторы, twig идет по умолчанию.
Давайте посмотрим, как можно с помощью шаблонизатора выдать какой-то html ответ.
У нас в проекте есть папка tempates и в ней находятся файлы шаблонов для TWIG.
Давайте в файле main/index.html создадим какую-нибудь html разметку. Пусть это будет какая-то базовая структура.
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <title>Document</title> </head> <body> тест </body> </html>
Задача шаблонизатора, превратить код из этого twig файла в обычную html разметку.
Для того, чтобы мы эту разметку вернули в контроллере мы должны воспользоваться методом render, который есть в контроллере и указать путь к этому файлу.
#[Route('/', name: 'app_home')] public function home(): Response { return $this->render('main/index.html.twig', []); }
В этот файл можно передавать переменные, но сейчас просто самая простая конструкция, которая вернет html содержимое для нашего роута.
Если мы обратимся теперь к этому роуту, у нас должна вернуться html разметка из этого шаблона twig.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти