Jesse Rushlow
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>
Published in #Living on the edge