- Deprecate passing a tag to the constructor of
FormThemeNode
- Add
emojify
Twig filter
- Drop support for Twig 2
- Allow an array to be passed as the first argument to the
importmap()
Twig function - Add
TemplatedEmail::locale()
to set the locale for the email rendering - Add
AppVariable::getEnabledLocales()
to retrieve the enabled locales - Add
impersonation_path()
andimpersonation_url()
Twig functions
- Add
AppVariable::getLocale()
to retrieve the current locale when using theLocaleSwitcher
- Add
form_label_content
andform_help_content
block to form themes - Add
#[Template()]
to describe how to render arrays returned by controllers - Add support for toggle buttons in Bootstrap 5 form theme
- Add
app.current_route
andapp.current_route_parameters
variables
- Wrap help messages on form elements in
div
instead ofp
- Add
github
format & autodetection to render errors as annotations when running the Twig linter command in a Github Actions environment.
- Add a new
markAsPublic
method onNotificationEmail
to change theimportance
context option to null after creation - Add a new
fragment_uri()
helper to generate the URI of a fragment - Add support of Bootstrap 5 for form theming
- Add a new
serialize
filter to serialize objects using the Serializer component
- added the
impersonation_exit_url()
andimpersonation_exit_path()
functions. They return a URL that allows to switch back to the original user. - added the
workflow_transition()
function to easily retrieve a specific transition object - added support for translating
TranslatableInterface
objects - added the
t()
function to easily createTranslatableMessage
objects - Added support for extracting messages from the
t()
function - Added
field_*
Twig functions to access string values from Form fields - changed the
importance
context option ofNotificationEmail
to allownull
- removed
TwigEngine
class, use\Twig\Environment
instead. - removed
transChoice
filter and token HttpFoundationExtension
requires aUrlHelper
on instantiation- removed support for implicit STDIN usage in the
lint:twig
command, uselint:twig -
(append a dash) instead to make it explicit. - added form theme for Foundation 6
- added support for Foundation 6 switches: add the
switch-input
class to the attributes of aCheckboxType
- added a new
TwigErrorRenderer
forhtml
format, integrated with theErrorHandler
component - marked all classes extending twig as
@final
- deprecated to pass
$rootDir
and$fileLinkFormatter
as 5th and 6th argument respectively to theDebugCommand::__construct()
method, swap the variables position. - the
LintCommand
lints all the templates stored in all configured Twig paths if none argument is provided - deprecated accepting STDIN implicitly when using the
lint:twig
command, uselint:twig -
(append a dash) instead to make it explicit. - added
--show-deprecations
option to thelint:twig
command - added support for Bootstrap4 switches: add the
switch-custom
class to the label attributes of aCheckboxType
- Marked the
TwigDataCollector
class as@final
.
- added the
form_parent()
function that allows to reliably retrieve the parent form in Twig templates - added the
workflow_transition_blockers()
function - deprecated the
$requestStack
and$requestContext
arguments of theHttpFoundationExtension
, pass aSymfony\Component\HttpFoundation\UrlHelper
instance as the only argument instead
- add bundle name suggestion on wrongly overridden templates paths
- added
name
argument indebug:twig
command and changedfilter
argument as--filter
option - deprecated the
transchoice
tag and filter, use thetrans
ones instead with a%count%
parameter
- add a
workflow_metadata
function
- added an
only
keyword toform_theme
tag to disable usage of default themes when rendering a form - deprecated
Symfony\Bridge\Twig\Form\TwigRenderer
- deprecated
DebugCommand::set/getTwigEnvironment
. Pass an instance ofTwig\Environment
as first argument of the constructor instead - deprecated
LintCommand::set/getTwigEnvironment
. Pass an instance ofTwig\Environment
as first argument of the constructor instead
- added a
workflow_has_marked_place
function - added a
workflow_marked_places
function
-
added
AppVariable::getToken()
-
Deprecated the possibility to inject the Form
TwigRenderer
into theFormExtension
. -
[BC BREAK] Registering the
FormExtension
without configuring a runtime loader for theTwigRenderer
doesn't work anymore.Before:
use Symfony\Bridge\Twig\Extension\FormExtension; use Symfony\Bridge\Twig\Form\TwigRenderer; use Symfony\Bridge\Twig\Form\TwigRendererEngine; // ... $rendererEngine = new TwigRendererEngine(['form_div_layout.html.twig']); $rendererEngine->setEnvironment($twig); $twig->addExtension(new FormExtension(new TwigRenderer($rendererEngine, $csrfTokenManager)));
After:
// ... $rendererEngine = new TwigRendererEngine(['form_div_layout.html.twig'], $twig); // require Twig 1.30+ $twig->addRuntimeLoader(new \Twig\RuntimeLoader\FactoryRuntimeLoader([ TwigRenderer::class => function () use ($rendererEngine, $csrfTokenManager) { return new TwigRenderer($rendererEngine, $csrfTokenManager); }, ])); $twig->addExtension(new FormExtension());
-
Deprecated the
TwigRendererEngineInterface
interface. -
added WorkflowExtension (provides
workflow_can
andworkflow_transitions
)
- added LogoutUrlExtension (provides
logout_url
andlogout_path
) - added an HttpFoundation extension (provides the
absolute_url
and therelative_path
functions) - added AssetExtension (provides the
asset
andasset_version
functions) - Added possibility to extract translation messages from a file or files besides extracting from a directory
- moved command
twig:lint
fromTwigBundle
- added stopwatch tag to time templates with the WebProfilerBundle
- added helpers form(), form_start() and form_end()
- deprecated form_enctype() in favor of form_start()
- added a
controller
function to help generating controller references - added a
render_esi
and arender_hinclude
function - [BC BREAK] restricted the
render
tag to only accept URIs or ControllerReference instances (the signature changed) - added a
render
function to render a request - The
app
global variable is now injected even when using the twig service directly. - Added an optional parameter to the
path
andurl
function which allows to generate relative paths (e.g. "../parent-file") and scheme-relative URLs (e.g. "//example.com/dir/file").
- added global variables access in a form theme
- added TwigEngine
- added TwigExtractor
- added a csrf_token function
- added a way to specify a default domain for a Twig template (via the 'trans_default_domain' tag)