Symfony 7.4.0-RC1 has just been released.

This is a pre-release version of Symfony 7.4. If you want to test it in your own applications before its final release, run the following commands:

1
2
3
$ composer config minimum-stability rc
$ composer config extra.symfony.require "7.4.*"
$ composer update

These commands assume that all your Symfony dependencies in composer.json use * as their version constraint. Otherwise, you will need to update the version constraints of those Symfony dependencies to 7.4.*.

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 7.4.0-BETA2

  • bug #62335 [Console] Fix signal handlers not being cleared after command termination (@yoeunes)
  • bug #62348 [Translation][Lokalise] fix "Project too big for sync export" (@santysisi)
  • bug #62304 [DependencyInjection] Fix lazy proxy creation for interfaces aliased to final classes (@yoeunes)
  • bug #62036 [HttpKernel] Fix StreamedResponse with chunks support in HttpKernelBrowser (@wuchen90)
  • bug #62063 [JsonStreamer] Rebuild cache on class update (@mtarld)
  • bug #62287 [HttpFoundation] Fix AcceptHeader overwrites items with different parameters (@yoeunes)
  • bug #62325 [Routing] Fix default value not taken if usigng name:entity.attribute (@eltharin)
  • bug #62329 [DependencyInjection] Fix merging explicit tags and #[AsTaggeditem] (@nicolas-grekas)
  • bug #62356 [HttpClient] Fix Warning: curl_multi_select(): timeout must be positive (@Jeroeny)
  • bug #62334 [PropertyInfo] Fix ReflectionExtractor handling of underscore-only property names (@yoeunes)
  • bug #58473 [Serializer] Fix AbstractObjectNormalizer to allow scalar values to be normalized (@Hanmac, @xabbuh)
  • bug #62093 [Security] Fix HttpUtils::createRequest() when the context’s base URL isn’t empty (@MatTheCat)
  • bug #62007 [Serializer] fix inherited properties normalization (@Link1515)
  • bug #62286 [Cache] compatibility with ext-redis 6.3 (@xabbuh)
  • bug #62321 [Serializer] Fix BackedEnumNormalizer behavior with partial denormalization (@yoeunes)
  • bug #62344 [OptionsResolver] Fix missing prototype key in nested error paths (@yoeunes)
  • bug #62346 [Clock] Align MockClock::sleep() behavior with NativeClock for negative values (@yoeunes)
  • bug #62347 [OptionsResolver] Ensure remove() also unsets deprecation status (@yoeunes)
  • bug #62359 [Yaml] Fix parsing of unquoted multiline scalars with comments or blank lines (@yoeunes)
  • bug #62350 [ExpressionLanguage] Compile numbers with var_export in Compiler::repr for thread-safety (@yoeunes)
  • security #cve-2025-64500 [HttpFoundation] Fix parsing pathinfo with no leading slash (@nicolas-grekas)
  • bug #62333 Postal mailer transport message ID retrieval (@lalcebo)
  • feature #62326 [Cache][Messenger] re-allow ext-redis 6.1 (@xabbuh)
  • bug #62324 [HttpFoundation] Fix parsing hosts and schemes in URLs (@nicolas-grekas)
  • bug #62171 [Messenger] Fix commands writing to STDERR instead of STDOUT (@wazum)
  • bug #62315 Keep body size limit for AMP redirects (@villermen)
  • bug #62214 [ObjectMapper] lazy loading (@soyuka)
  • bug #62237 [Form] Fix EnumType choice_label logic for grouped choices (@yoeunes)
  • bug #62283 [Filesystem] Unify logic for isAbsolute() in Path (@yoeunes)
  • feature #62302 [Routing] Simplify importing routes defined on controller services (@nicolas-grekas)
  • bug #62091 [BrowserKit] The BrowserKit history with parameter separator without slash. (@biozshock)
  • bug #62297 [Twig] Ensure WrappedTemplatedEmail::getReturnPath() returns a string (@yoeunes)
  • bug #62294 [Console] Add missing VERBOSITY_SILENT case in CommandDataCollector (@yoeunes)
  • bug #62290 [Routing] Fix matching the "0" URL (@cs278)
  • bug #62285 [HttpClient] Reject 3xx pushed responses (@nicolas-grekas)
Published in #Releases