Repository navigation
v0.20.3
·
232 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
0.20.3 (2026-09-15)
- Read YAML configuration values with Symfony's own YAML parser, so numbers written as
60_000,+60,0x1Aor0o17are no longer reported as invalid types - Treat every tagged YAML configuration value as opaque instead of only
!php/const - Read bundle configuration schemas from the extensions the kernel registers, so a bundle that declares its extension while prepending no longer has every configured key reported as unknown
- Speed up checks by compiling each
.gitignorefile once per project instead of once per examined file - Speed up checks by looking for a suppression directive before parsing a document's comments
- Read Messenger bus and transport references from Messenger configuration keys instead of any YAML key named like them, so a
$busservice argument is no longer reported as an unknown bus - Read bus names from resolved
BusNameStampinstantiations instead of matching the class name in text, so string contents and same-named classes from other namespaces are ignored - Recognize routed Messenger transports declared under a
senderskey, in block or inline style, and stop reporting thesenderskey itself as an unknown transport - Read Twig
{% trans %}keys from parsed tag directives instead of matching tag text, so a tag inside a string literal is ignored and whitespace-control forms are recognized - Recognize
createForm()andcreateNamed()only on$thisor a form factory receiver, so options passed to a same-named method on an unrelated object are no longer diagnosed - Ignore Stimulus markup inside HTML comments and read
data-actionreferences only from complete Stimulus descriptors, so commented markup and URL values are no longer reported as unknown controllers - Read YAML validation constraints and their options the way Symfony does, so nested constraints such as the entries of
Allare no longer reported as unknown options of their parent - Ignore
trans()calls whose receiver is declared with a type no translator can satisfy - Bind PHP route collection variables through parsed type declarations and object creations, so a
RoutingConfiguratormentioned in a comment or a string no longer turns unrelatedadd()calls into routes - Read a repository's
@extends ServiceEntityRepository<Entity>tag from its own doc comment instead of the preceding kilobyte of source - Offer Twig completion for assets, routes, templates, security roles and Stimulus helpers only inside a Twig directive, and Stimulus
data-*attribute completion only in markup - Scope Messenger option completion in YAML to Messenger configuration and service tags
- Read subscribed events from the array a declared event subscriber returns, so local arrays and same-named methods on unrelated classes no longer register events
- Read serializer
groupscontext entries from serializer attributes and calls instead of anygroupskey, so validation groups are no longer indexed as serializer groups - Recognize
groupsin serializerContextattributes - Treat a doubled
%%as an escaped percent sign in environment expressions - Recognize form options declared by a type extension registered on several types of the same hierarchy
- Report unknown Twig components only in applications that enable
symfony/ux-twig-component, so an application's owncomponent()Twig function is no longer diagnosed