Новое в Symfony 7.2: Улучшения DX шаблонов

Источник: «New in Symfony 7.2: Template DX Improvements»
В Symfony 7.2 можно задавать HTTP заголовки статических страниц и выводить определённые блоки Twig используя атрибуты.

Symfony 7.2 включает улучшения DX (опыт разработчика), облегчающие работу над задачами, связанными с шаблонами.

Определение заголовков в статических страницах

Хотя шаблоны обычно рендерятся в контроллерах и сервисах, также можно рендерить статические страницы непосредственно из определения маршрута. В Symfony 7.2 можно также определять HTTP заголовки этих страниц:

# config/routes.yaml
releases_char:
path: /symfony-releases-chart
controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController
defaults:
template: 'static/releases/chart.svg.twig'
# ...

# HTTP заголовки, добавляемые в ответ
headers:
Content-Type: 'image/svg+xml'

Рендеринг блоков Twig с помощью атрибутов

Если вы используете Symfony UX Turbo для создания полностью динамических интерфейсов без написания JavaScript, обычно вместо целых шаблонов Twig рендерятся блоки шаблонов Twig.

В Symfony 6.4 в базовый AbstractController для упрощения рендеринга блоков были добавлены методы renderBlock() и renderBlockView(). В Symfony 7.2 мы добавляем опцию block в атрибут #[Template] для рендеринга конкретных блоков:

use Symfony\Bridge\Twig\Attribute\Template;
// ...

class ProductController extends AbstractController
{
#[Template('product/listings.html.twig', block: 'top_list')]
public function topSellers(): array
{
// ...
}
}

Комментарии


Дополнительные материалы

Предыдущая Статья

Стрелочная функция vs. обычная функция в JavaScript

Следующая Статья

PHP 8.4: Curl: Новые константы CURL_HTTP_VERSION_3 и CURL_HTTP_VERSION_3ONLY для поддержки HTTP/3