New in Symfony 3.3: WebLink component
April 21, 2017 • Published by Javier Eguiluz
Warning: This post is about an unsupported Symfony version. Some of this information may be out of date. Read the most recent Symfony Docs.
A few weeks ago, we added support for asset preloading with HTTP/2 Push. The feedback was so enthusiastic that we decided to improve and expand this feature. In fact, we decided to create a whole new component for it: WebLink.
This new component manages links between resources, not only assets; advising browsers to preload and prefetch resources through HTTP and HTTP/2 pushes. The component implements these specifications: HTML5 Links, Preload, and Resource Hints
All these new features can be used via several Twig functions:
link()
, adds theLink
HTTP header;preload()
, preload resources (not only assets);dns_prefetch()
, resolves a resource origin as early as possible;preconnect()
, initiates a early connection to a resource (including DNS resolution, TCP handshake, and TLS negotiation);prefetch()
, indicates to the client that it should prefetch the given resource;prerender()
, indicates to the client that it should prerender the given resource.
Unlike the previous preloading feature, this component is not only useful for web assets. Being a standalone component means that it can also be used for example to replace resource embedding by HTTP/2 pushes in your APIs.
Help the Symfony project!
As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.
Comments are closed.
To ensure that comments stay relevant, they are closed for old posts.
Javier, after adding this WebLink component in composer, what is the way to enable the Twig functions in config.yml ?
Ok I guess need to activate it in config.yml: framework: web_link: enabled: true
And then add the extension in services : twig.extension.web_link: class: Symfony\Bridge\Twig\Extension\WebLinkExtension arguments: ["@request_stack"] tags: - { name: twig.extension }
@Martin, since we're talking about Symfony 3.3, you can even use the new service definition method:
@Martin @Stephan Or even better yet :
@Dorian Villet
Or even even better yet:
:D