Опубликовано:
Новое в Symfony 7.2: Улучшения DX шаблонов
Источник: «New in Symfony 7.2: Template DX Improvements»
В Symfony 7.2 можно задавать HTTP заголовки статических страниц и выводить определённые блоки Twig используя атрибуты.
Symfony 7.2 включает улучшения DX (опыт разработчика), облегчающие работу над задачами, связанными с шаблонами.
Определение заголовков в статических страницах
- Pull Request: [FrameworkBundle] Add support for setting
headers
withTemplateController
#54678 HypeMC
Хотя шаблоны обычно рендерятся в контроллерах и сервисах, также можно рендерить статические страницы непосредственно из определения маршрута. В 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
{
// ...
}
}