Symfony 8.1.8 has just been released.
Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project.
Tip
Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.
Changelog Since Symfony 8.1.7
AssetMapper
- bug #66282 [AssetMapper] Fix CSS and JSON loaders breaking under es-module-shims (@nicolas-grekas)
DependencyInjection
- bug #66434 [DependencyInjection] Track env placeholders reused after a previous extension dropped them (@TamasSzigeti)
- bug #66416 [DependencyInjection][Routing] Escape identifiers in generated PHP (@thomas-chauchefoin-tob)
- bug #66427 [DependencyInjection] Export the service id when sharing a circular wither service (@nicolas-grekas)
- bug #66366 [DependencyInjection][FrameworkBundle] Fix describing services that have env closure arguments (@nicolas-grekas)
- bug #66241 [DependencyInjection] Fix moving tags to the outermost decorator when a decorator is decorated (@nicolas-grekas)
Doctrine
- bug #66274 [Doctrine] Resolve DBAL types through the connection instead of the static registry (@GromNaN)
DoctrineBridge
- bug #66425 [DoctrineBridge] Don't map the uuid and ulid type names to uid classes in DoctrineExtractor (@lazerg)
- bug #66409 [DoctrineBridge] Never claim an object as a collection key type (@MlleDelphine)
- bug #66338 [DoctrineBridge] Fix DoctrineExtractor for uid types and collections indexed by custom types (@MlleDelphine)
Form
- bug #66283 [Form] Stop using the deprecated any() matcher in ValidatorExtensionTrait (@mbabker)
- bug #66164 [Form] Fix FormFlow creation, step fallback, backward navigation and reset (@yceruto)
- minor #66438 [Form][Validator] Review Dutch (nl) translations (@michelvelswijk)
- minor #66312 [Form][Validator] Remove needs-review-translation state from Spanish translations (@abp002)
- minor #66286 [Form] reviewed Polish translation unit 130 (@thunderer)
- minor #66205 [Form][Security][Validator] Review Macedonian (mk) translations (@KalimeroMK)
- minor #66148 [Form] Review Indonesian translation for validators (@Yoruxyv)
- minor #66115 [Form] Review Italian translation for validators (@GiuseppePuleri)
- minor #66113 [Form] Review French translation for range bound validator (@rooneyi)
FrameworkBundle
- bug #66359 [FrameworkBundle] Disable HTTP/2 push on the default HTTP client (@Amoifr)
- bug #66220 [FrameworkBundle] Fix DotenvVault corrupting a value that contains a back-reference (@lazerg)
- bug #66137 [FrameworkBundle] Cache the serializer metadata in debug mode when it comes from mapping files (@nicolas-grekas)
- minor #66430 [FrameworkBundle] Fix the description of an empty webhook routing secret (@nicolas-grekas)
- minor #66407 [FrameworkBundle] Require symfony/dependency-injection ^8.1.8 (@nicolas-grekas)
HttpClient
- bug #66267 [HttpClient] Align GuzzleHttpHandler with Guzzle when on_headers throws (@nicolas-grekas)
- bug #66266 [HttpClient] Fix NativeHttpClient::stream() skipping responses not opened yet (@nicolas-grekas)
- bug #66270 [HttpClient] Don't reject highly compressed responses (@nicolas-grekas)
- bug #66233 [HttpClient] Don't set CURLOPT_WRITEFUNCTION from within the write callback (@nicolas-grekas)
- bug #66080 [HttpClient] Add missing non-routable ranges to NoPrivateNetworkHttpClient (@nicolas-grekas)
- minor #66183 [HttpClient] Document that withOptions() rejects an unsupported option (@nicolas-grekas)
HttpKernel
- bug #66395 [HttpKernel] Fix the log level of exceptions mapped to an HTTP status code (@nicolas-grekas)
- bug #66331 [HttpKernel] Don't send headers again in HttpKernel::terminateWithException() (@nicolas-grekas)
- bug #66322 [HttpKernel] Fix reading the listeners of the default dispatcher from an unserialized EventDataCollector (@nicolas-grekas)
JsonStreamer
- bug #66417 [JsonStreamer] Escape types in generated PHP comments (@thomas-chauchefoin-tob)
- bug #66428 [JsonStreamer] Export the type as a literal in the generated encoding error message (@nicolas-grekas)
- bug #66411 [JsonStreamer] Fix replacing templates by mixed in union types (@nicolas-grekas)
- bug #66358 [JsonStreamer] Fix generic types replacement in object shapes (@mtarld)
- bug #66357 [JsonStreamer] Fix generic types replacement in array shapes (@mtarld)
- minor #66429 [JsonStreamer] Fix generated readers and writers for names holding quotes (@nicolas-grekas)
Mailer
- bug #66436 [Mailer][Sweego] Send the Reply-To address through the dedicated API field (@damient)
Messenger
- bug #66433 [Messenger] Prevent PhpSerializer::getMessageType() from autoloading classes (@nicolas-grekas)
- bug #66264 [Messenger] Fix a doctrine/dbal 4.5 deprecation in DoctrinePostgreSqlFilterIntegrationTest (@nicolas-grekas)
- bug #66228 [Messenger] Avoid priority 0 when retrying AMQP messages (@X-Coder264)
- bug #66223 [Messenger] Fix sub-second delays being lost by the Doctrine transport (@wimwinterberg)
- bug #66198 [Messenger] Fix InMemoryTransport delay when it spans a DST transition (@SystematicCZ)
- bug #66085 [Messenger] Hold the signals until the SQS request is actually sent (@nicolas-grekas)
Notifier
- minor #66132 [Notifier] Fix the event dispatcher type of the FakeChat transports (@nicolas-grekas)
ObjectMapper
- bug #66410 [ObjectMapper] Construct nested lazy-ghost targets when the mapper is decorated (@dylan-rumble)
PropertyInfo
- bug #66413 [PropertyInfo] Fix quoted strings resolution in PhpStanExtractor with phpstan/phpdoc-parser 1.x (@mtarld)
Scheduler
- bug #66345 [Scheduler] Fix stateful schedules skipping every run when the checkpoint cannot be saved (@srebb)
Security
- bug #66421 [Security] Bind discovered OIDC keys to issuers (@thomas-chauchefoin-tob)
- bug #66422 [Security] Give each role its own node in the Mermaid dump (@nicolas-grekas)
- bug #66199 [Security] Keep the real role names in the labels of the Mermaid dump (@javiereguiluz)
- minor #66120 [Security] Document that user checkers run on every authentication (@nicolas-grekas)
- minor #66118 [Security] Fix the type declared for the event dispatcher (@nicolas-grekas)
Serializer
- bug #66408 [Serializer] Don't include the debug trace id in the attributes cache key (@javiereguiluz)
- bug #66385 [Serializer][Validator] Fix compile-time discovery of attributes on non-public members (@nicolas-grekas)
- bug #66387 [Serializer] Fix the cache key of MetadataAwareNameConverter when the context can't be serialized (@nicolas-grekas)
- bug #66315 [Serializer] Fix quadratic time when collecting denormalization errors (@thomas-chauchefoin-tob)
- bug #66262 [Serializer] Fix denormalizing the discriminator type property when a name converter renames it (@nicolas-grekas)
- bug #66079 [Serializer] Make MetadataAwareNameConverter caches per instance (@nicolas-grekas)
TypeInfo
- bug #66414 [TypeInfo] Fix infinite recursion on recursive type aliases (@mtarld)
- bug #66412 [TypeInfo] Fix Type::union() with mixed as the only non-null type (@nicolas-grekas)
- bug #66405 [TypeInfo] Fix printing object shape keys that contain quotes or backslashes (@nicolas-grekas)
- bug #66404 [TypeInfo] Fix printing array shape keys that contain quotes or backslashes (@nicolas-grekas)
- bug #66356 [TypeInfo] Fix object shape keys resolution in StringTypeResolver (@mtarld)
- bug #66380 [TypeInfo] Fix quoted strings resolution with phpstan/phpdoc-parser 1.x (@mtarld)
- bug #66377 [TypeInfo] Fix accepts() of union and intersection types (@mtarld)
- bug #66316 [TypeInfo] Fix array shape keys resolution in StringTypeResolver (@mtarld)
- bug #66319 [TypeInfo] Fix resolving unknown class constants (@mtarld)
- bug #66318 [TypeInfo] Fix resolving class keyword constants without type context (@mtarld)
- bug #66317 [TypeInfo] Fix class names resolution in the global namespace (@mtarld)
Validator
- bug #66309 [Validator] Prevent ffprobe option injection from video filenames (@thomas-chauchefoin-tob)
- bug #66157 [Validator] Fix the Video constraint ignoring its codec and container options (@nicolas-grekas)
- minor #66225 [Validator] Review Albanian translations (@gazi04)
- minor #66362 [Validator] Review Arabic translations (@fadyehabamer)
- minor #66287 [Validator] reviewed Polish translation units 149-165 (@thunderer)
- minor #66259 [Validator] Update Swedish translation #64518 (@H4wKs)
- minor #66230 [Validator] Review Indonesian audio translations (@Yoruxyv)
- minor #66232 [Validator] Fix Range PHPDoc to accept \DateTimeInterface min/max (@paulferrett)
- minor #66224 [Validator] Review Croatian translations (@HypeMC)
- minor #66156 [Validator] Add translations for the Audio constraint (@nicolas-grekas)
- minor #66139 [Validator] Add missing Arabic translation for validation units (@EmanFateen)
WebProfilerBundle
- bug #66424 [WebProfilerBundle] Escape the workflow diagram source and listener map in the profiler (@nicolas-grekas)
- bug #66275 [WebProfilerBundle] Mark EventSource requests as finished when closed (@jmsche)
- bug #66276 [WebProfilerBundle] Fix long URLs overflowing the AJAX requests table in the toolbar (@jmsche)
- minor #66281 [WebProfilerBundle] Fix EventSource::close() on requests already finished or cleared (@nicolas-grekas)
- minor #66280 [WebProfilerBundle] Truncate long non-GET URLs in the AJAX requests table (@nicolas-grekas)
Yaml
- bug #66344 [Yaml] Fix tabs in block scalars and comments after empty ones (@X-Coder264)
- bug #66340 [Yaml] Fix !!str and !!float tags on block scalars (@nicolas-grekas)
- bug #66342 [Yaml] Fix several parsing edge cases (@nicolas-grekas)
- bug #66123 [Yaml] Fix the line offset handed to nested block parsers (@lazerg)
Sponsor the Symfony project.