New in Symfony 7.2: Template DX Improvements


Symfony 7.2 includes some DX (developer experience) improvements to make your
work easier in some tasks related to templates.

Define Headers in Static Pages

Contributed by
HypeMC
in
#54678

Although templates are usually rendered in controllers and services, you can also
render static pages directly from the route definition. In Symfony 7.2, you can
also define the HTTP headers of those pages:

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

# the HTTP headers added to the response
headers:
Content-Type: 'image/svg+xml'

Render Twig Blocks Using Attributes

Contributed by
Simon André
in
#58028

If you use Symfony UX Turbo to create fully dynamic interfaces without writing
JavaScript, it's common to render Twig template blocks instead of entire Twig templates.
In Symfony 6.4, the renderBlock() and renderBlockView() methods were added
to the base AbstractController to simplify block rendering. In Symfony 7.2,
we're adding a block option to the #[Template] attribute to render specific blocks:

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

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

Sponsor the Symfony project.