New in Symfony 5.3: Twig Serialize Filter

Contributed by
Jesse Rushlow
in #40323.

In Symfony applications there are several methods of passing data from the
backend to the frontend. Some applications make Ajax requests whenever they need
data and others prefer to pass it in Twig templates as HTML attributes or
JavaScript variable values.

In Symfony 5.3 we’ve added a simpler way of doing this: the new serialize
Twig filter
. This filter accepts any data that can be serialized by the
Serializer component and returns a serialized string in the specified format.

In the following example, the Twig template uses the stimulus_controller()
function from the Symfony Stimulus Bridge. If the template is passed a
variable called product, you can now serialize its contents to use it in the
Stimulus function call:

1
2
3
{{ stimulus_controller(‚product-show‘, {
product: product|serialize(‚json‘, { groups: ‚product:read‘})
}) }}

This would render something like this:

1
2
3
<div data-controller=„product-show“
data-product-show-product-value=„{&quot;id&quot;:5,…}“>
<div>
Sponsor the Symfony project.

Symfony Blog
Read More