Symfony Blog https://symfony.com/blog/ Most recent posts published on the Symfony project blog Mon, 15 Dec 2025 01:21:51 +0100 Sun, 14 Dec 2025 09:09:00 +0100 en https://symfony.com/blog/a-week-of-symfony-989-december-8-14-2025?utm_source=Symfony%20Blog%20Feed&utm_medium=feed This week, Symfony released the maintenance versions 6.4.30 and 7.3.8, as well as the first patch releases of the 7.4 and 8.0 branches: 7.4.1, 8.0.1, 7.4.2, and 8.0.2. In addition, we published a free video of the Symfony AI talk from SymfonyCon Amsterdam… This week, Symfony released the maintenance versions 6.4.30 and 7.3.8, as well as the first patch releases of the 7.4 and 8.0 branches: 7.4.1, 8.0.1, 7.4.2, and 8.0.2. In addition, we published a free video of the Symfony AI talk from SymfonyCon Amsterdam 2025, offering an introduction to integrating AI into Symfony applications.

Symfony development highlights

This week, 40 pull requests were merged (37 in code and 3 in docs) and 36 issues were closed (33 in code and 3 in docs). Excluding merges, 19 authors made 5,507 additions and 3,901 deletions. See details for code and docs.

6.4 changelog:

  • a50c2bf: [DependencyInjection] handle recursive factory reentry for shared services in PhpDumper
  • 169a250: [DependencyInjection] fix sharing services used only by tagged iterators
  • ead41a7: [PropertyInfo] fix PseudoType support in PhpDocTypeHelper
  • faa3a3c: [HttpClient] fix copy as curl for arrays with resources & unreachable host
  • 45d7ec5: [HttpClient] fix PHP deprecation when using AmpHttpClient
  • 491c2f4: [PropertyInfo] fix @var tag support for PhpStanExtractor
  • 0dd5cfb: [HttpClient] fix ScopingHttpClient to always pass base_uri as string instead of parsed array
  • e642384: [PropertyInfo] fix inconsistency between isWritable and getWriteInfo

7.3 changelog:

  • 16389f6: [DependencyInjection] fix PriorityTaggedServiceTrait when tag attributes are not a list
  • e1bb5dc: [JsonPath] update and fix the compliance test suite
  • 25f531b: [PropertyInfo] keep test with Type class from TypeInfo component

7.4 changelog:

  • 56b30a7: [Serializer, Validator] attribute metadata no longer requires container.excluded tags
  • 663ec5d: [TwigBundle] fix unintended BC break for the exception_controller twig setting
  • 13a5dd2: [FrameworkBundle] enable console profiling only if the console is actually available
  • 576a47f: [TwigBridge] do not render button labels if they are explicitly disabled
  • 8b47877: [Config] add default generic to Configuration to TParent generic
  • f553818: [Validator] fix handling named arguments in Existence constraint
  • 79820e8: [HttpClient] mark response stale when age equals freshness lifetime
  • 88c868b: [Workflow] fix empty string condition for place name

Newest issues and pull requests

Symfony Jobs

These are some of the most recent Symfony job offers:

  • DevOps for a Symfony project at Dayuse
    Full-time - €50,000 – €60,000 / year
    Remote + part-time onsite (Paris, France)
    View details
  • Backend Symfony Developer at TreeHouse
    Full-time - €3,200 – €6,500 / month
    Rotterdam, Netherlands
    View details
  • Symfony Developer at 8mylez
    Full-time - €50,000 – €60,000 / year
    Full remote
    View details
  • Symfony Developer at FFTT
    Full-time - €50,000 – €55,000 / year
    Remote + part-time onsite (Paris, France)
    View details
  • Backend Symfony Developer at Edflex
    Full-time - €45,000 – €50,000 / year
    Remote + part-time onsite (Nantes, France)
    View details

You can publish a Symfony job offer for free on symfony.com.

SymfonyCasts Updates

SymfonyCasts is the official way to learn Symfony. Select a track for a guided path through 100+ video tutorial courses about Symfony, PHP and JavaScript.

This week, SymfonyCasts published the following updates:

They talked about us

Call to Action


Sponsor the Symfony project.
]]>
https://symfony.com/blog/a-week-of-symfony-989-december-8-14-2025?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Sun, 14 Dec 2025 09:09:00 +0100 https://symfony.com/blog/a-week-of-symfony-989-december-8-14-2025?utm_source=Symfony%20Blog%20Feed&utm_medium=feed#comments-list
https://symfony.com/blog/symfonycon-amsterdam-2025-free-replay-where?utm_source=Symfony%20Blog%20Feed&utm_medium=feed A gift for the Symfony community! 🎁 SymfonyCon Amsterdam 2025 was an amazing ride!🌟 Two days of inspiring talks, lively chats, and a truly global Symfony community coming together. And now, we’re thrilled to share a treat for everyone: Christopher… Nl Blog Banner 44

A gift for the Symfony community! 🎁

SymfonyCon Amsterdam 2025 was an amazing ride!🌟

Two days of inspiring talks, lively chats, and a truly global Symfony community coming together. And now, we’re thrilled to share a treat for everyone:

Christopher Hertel’s talk, Symfony AI in Action from SymfonyCon Amsterdam 2025 is now available for FREE! 🌟

Get inspired with practical ways to integrate AI into your Symfony & PHP projects — no hype, just real-world insights. His slides are included too!

Loved the event?

All other amazing talks are available for replay too: SymfonyCon 2025 replays🎥

Nl Blog Banner 45


SymfonyCon is coming to Warsaw in 2026!

Prepare yourself for more exciting talks and great vibes at our next SymfonyCon Warsaw 2026!

Happening November 26–27, 2026 in the beautiful city of Warsaw, Poland! 💙🚀

Buy your Early Bird tickets now and join us for an unforgettable Symfony week once more!


Joins us online!

💡Follow the "conference" blog posts to not miss anything!

Want the latest Symfony updates? Follow us and tune in from wherever you are 🌎

Banner Blog


Sponsor the Symfony project.
]]>
https://symfony.com/blog/symfonycon-amsterdam-2025-free-replay-where?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Thu, 11 Dec 2025 15:43:00 +0100 https://symfony.com/blog/symfonycon-amsterdam-2025-free-replay-where?utm_source=Symfony%20Blog%20Feed&utm_medium=feed#comments-list
https://symfony.com/blog/symfony-8-0-2-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Symfony 8.0.2 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… Symfony 8.0.2 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.0.1

  • bug #62682 [Serializer][Validator] Attribute metadata no longer requires container.excluded tags (@HypeMC)
  • bug #62685 [DependencyInjection] Fix PriorityTaggedServiceTrait when tag attributes are not a list (@GromNaN)

Sponsor the Symfony project.
]]>
https://symfony.com/blog/symfony-8-0-2-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Mon, 08 Dec 2025 09:11:15 +0100 https://symfony.com/blog/symfony-8-0-2-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed#comments-list
https://symfony.com/blog/symfony-7-4-2-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Symfony 7.4.2 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… Symfony 7.4.2 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 7.4.1

  • bug #62682 [Serializer][Validator] Attribute metadata no longer requires container.excluded tags (@HypeMC)
  • bug #62685 [DependencyInjection] Fix PriorityTaggedServiceTrait when tag attributes are not a list (@GromNaN)

Sponsor the Symfony project.
]]>
https://symfony.com/blog/symfony-7-4-2-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Mon, 08 Dec 2025 08:59:17 +0100 https://symfony.com/blog/symfony-7-4-2-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed#comments-list
https://symfony.com/blog/symfony-8-0-1-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Symfony 8.0.1 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… Symfony 8.0.1 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.0.0

  • bug #62663 [HttpFoundation] Improve logic in Request::createFromGlobals() (@nicolas-grekas)
  • bug #62675 [DependencyInjection] Fix dealing with errored service definitions (@nicolas-grekas)
  • bug #62671 [DomCrawler] Fixing dealing with invalid charset (@ThomasLandauer)
  • bug #62488 [HttpKernel] Make #[Cache] respect all explicit cache directives set in controller (@ayyoub-afwallah)
  • bug #62665 [DependencyInjection] Revert "bug #62541 Reset resolved state when setting a parameter" (@nicolas-grekas)
  • bug #62388 [TypeInfo] Simple array should be array type (@matijn-made)
  • bug #61962 [Console] Handle signals on text input (@valx76)
  • bug #62661 [Runtime] Reuse the already created Request object when the app needs one as argument and returns a kernel (@nicolas-grekas)
  • bug #62477 [DependencyInjection] Allow manual bindings on parameters with #[Target] (@yoeunes)
  • bug #62495 [Security][Http] Fix OIDC discovery when multiple HttpClient instances are used (@Ali-HENDA)
  • bug #62563 [Config] Fix array shape generation for backed enums (@OskarStark)
  • bug #62621 [Form] Fix moneytype step (@Belhassen)
  • bug #62622 [JsonStreamer] fix invalid json output for list of self (@DjordyKoert)
  • bug #62627 [Console] Preserve --help option when a command is not found (@santysisi)
  • bug #62656 [FrameworkBundle] Fix using FailedMessages*Command with SigningSerializer (@HypeMC)
  • bug #62653 [Lock] Fix unserializing already serialized Key payloads (@nicolas-grekas)
  • bug #62652 [HttpClient] CachingHttpClient must run after UriTemplate and Scoping (@Lctrs)
  • bug #62651 [FrameworkBundle] Only register PhpConfigReferenceDumpPass in dev env with debug flag enabled (@bobvandevijver)
  • bug #62619 [Messenger] Fix PHP 8.5 deprecation for pgsqlGetNotify() in PostgreSQL transport (@Shine-neko)
  • bug #62544 [DependencyInjection] Ensure deprecation detection does not trigger a PHP error (@bnf)
  • bug #62586 [DependencyInjection][FrameworkBundle] fix BC break when dumping container for build/lint commands (@aschempp)
  • bug #62607 [Form] Clean up wrong method docblocks in data transformers (@alexndlm)
  • bug #62612 [Yaml] Fix regression handling blank lines in unquoted scalars (@yoeunes)
  • bug #62646 [DependencyInjection] Throw when using $this or its internal scope from PHP config files (@nicolas-grekas)
  • bug #62645 [HttpClient] Fix sharing CurlClientState between clones of CurlHttpClient instances (@nicolas-grekas)
  • bug #62647 [FrameworkBundle] Don't exclude classes with constraint/serialization attributes from being registered as services (@nicolas-grekas)
  • bug #62614 [Cache] Fix NullAdapter must set taggable (@a.dmitryuk)
  • bug #62562 [Console] don't discard existing aliases when constructing Command (@henderkes)
  • bug #62535 [HttpKernel] Don't reset services between fragments redering when using in HttpCache (@nicolas-grekas)
  • bug #62532 [FrameworkBundle] Dump bundles config reference first (@MatTheCat)
  • bug #62541 [DependencyInjection] Reset resolved state when setting a parameter (@yoeunes)
  • bug #62558 [DependencyInjection] Don't add empty .container.known_envs in XML loader (@GromNaN)
  • bug #62602 [Cache] Fix the creation of a redis connection with only ext-relay (@stof)
  • bug #62587 [PropertyInfo] treat mixed[] the same as array when getting types from docblocks (@xabbuh)
  • bug #62524 [Notifier][Mercure] Add support for Mercure 0.7 (@Kocal)
  • bug #62571 [Console] Fix profile invokable command (@Jibbarth)
  • bug #62577 [PropertyInfo] treat mixed[] the same as array when getting types from docblocks (@xabbuh)
  • bug #62498 [FrameworkBundle] fix merging of enabled locales (@dmaicher)
  • bug #62551 [FrameworkBundle] register attribute loader arguments in a forward-compatible way (@xabbuh)
  • bug #62465 [JsonPath] Fix throwing on quoted True/False/Null (@TamasSzigeti)
  • bug #62482 [DependencyInjection] Fix loose validation in #[Autowire] attribute (@yoeunes)
  • bug #62513 [FrameworkBundle] Add missing useAttributeAsKey calls (@MatTheCat)
  • bug #62523 [DependencyInjection] Fix state corruption in PhpFileLoader during recursive imports (@yoeunes)
  • bug #62543 [Cache] ensure compatibility with RelayCluster 0.20.0 (@xabbuh)
  • bug #62536 [Cache] ensure compatibility with Relay extension 0.20.0 (@xabbuh)
  • bug #62515 [FrameworkBundle] Allow backed enum to be used in initial_marking workflow configuration (@DemonTPx)
  • bug #62506 [DependencyInjection] Fix query_string env processor for URLs without query string (@yoeunes)
  • bug #62502 [HttpFoundation] Fix Expires response header for EventStream (@4513)
  • bug #62503 [HttpClient] Fix releasing uploaded stream resources (@nicolas-grekas)
  • bug #62474 [Config] Fix nullable EnumNode with BackedEnum (@yoeunes)
  • bug #62485 [DependencyInjection] Fix loop corruption in CheckTypeDeclarationsPass (@yoeunes)
  • bug #62486 [DependencyInjection] Fix invalid PHP syntax for nullable TypedReference in PhpDumper (@yoeunes)
  • bug #62487 [Security] Fix UserBadge validation bypass via identifier normalizer (@yoeunes)
  • bug #62489 [FrameworkBundle] Fix TypeError when traversing scalar values in debug:config (@yoeunes)
  • bug #62493 [Console] Fix exception message when abbreviation matches multiple hidden commands (@yoeunes)
  • bug #62471 [String] Fix normalization in trimPrefix/trimSuffix (@yoeunes)

Sponsor the Symfony project.
]]>
https://symfony.com/blog/symfony-8-0-1-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Sun, 07 Dec 2025 18:02:07 +0100 https://symfony.com/blog/symfony-8-0-1-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed#comments-list
https://symfony.com/blog/symfony-7-4-1-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Symfony 7.4.1 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… Symfony 7.4.1 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 7.4.0

  • bug #62663 [HttpFoundation] Improve logic in Request::createFromGlobals() (@nicolas-grekas)
  • bug #62675 [DependencyInjection] Fix dealing with errored service definitions (@nicolas-grekas)
  • bug #62671 [DomCrawler] Fixing dealing with invalid charset (@ThomasLandauer)
  • bug #62488 [HttpKernel] Make #[Cache] respect all explicit cache directives set in controller (@ayyoub-afwallah)
  • bug #62665 [DependencyInjection] Revert "bug #62541 Reset resolved state when setting a parameter" (@nicolas-grekas)
  • bug #62388 [TypeInfo] Simple array should be array type (@matijn-made)
  • bug #61962 [Console] Handle signals on text input (@valx76)
  • bug #62661 [Runtime] Reuse the already created Request object when the app needs one as argument and returns a kernel (@nicolas-grekas)
  • bug #62477 [DependencyInjection] Allow manual bindings on parameters with #[Target] (@yoeunes)
  • bug #62495 [Security][Http] Fix OIDC discovery when multiple HttpClient instances are used (@Ali-HENDA)
  • bug #62563 [Config] Fix array shape generation for backed enums (@OskarStark)
  • bug #62621 [Form] Fix moneytype step (@Belhassen)
  • bug #62622 [JsonStreamer] fix invalid json output for list of self (@DjordyKoert)
  • bug #62627 [Console] Preserve --help option when a command is not found (@santysisi)
  • bug #62656 [FrameworkBundle] Fix using FailedMessages*Command with SigningSerializer (@HypeMC)
  • bug #62653 [Lock] Fix unserializing already serialized Key payloads (@nicolas-grekas)
  • bug #62652 [HttpClient] CachingHttpClient must run after UriTemplate and Scoping (@Lctrs)
  • bug #62651 [FrameworkBundle] Only register PhpConfigReferenceDumpPass in dev env with debug flag enabled (@bobvandevijver)
  • bug #62619 [Messenger] Fix PHP 8.5 deprecation for pgsqlGetNotify() in PostgreSQL transport (@Shine-neko)
  • bug #62544 [DependencyInjection] Ensure deprecation detection does not trigger a PHP error (@bnf)
  • bug #62586 [DependencyInjection][FrameworkBundle] fix BC break when dumping container for build/lint commands (@aschempp)
  • bug #62607 [Form] Clean up wrong method docblocks in data transformers (@alexndlm)
  • bug #62612 [Yaml] Fix regression handling blank lines in unquoted scalars (@yoeunes)
  • bug #62646 [DependencyInjection] Throw when using $this or its internal scope from PHP config files (@nicolas-grekas)
  • bug #62645 [HttpClient] Fix sharing CurlClientState between clones of CurlHttpClient instances (@nicolas-grekas)
  • bug #62647 [FrameworkBundle] Don't exclude classes with constraint/serialization attributes from being registered as services (@nicolas-grekas)
  • bug #62614 [Cache] Fix NullAdapter must set taggable (@a.dmitryuk)
  • bug #62562 [Console] don't discard existing aliases when constructing Command (@henderkes)
  • bug #62535 [HttpKernel] Don't reset services between fragments redering when using in HttpCache (@nicolas-grekas)
  • bug #62532 [FrameworkBundle] Dump bundles config reference first (@MatTheCat)
  • bug #62541 [DependencyInjection] Reset resolved state when setting a parameter (@yoeunes)
  • bug #62558 [DependencyInjection] Don't add empty .container.known_envs in XML loader (@GromNaN)
  • bug #62602 [Cache] Fix the creation of a redis connection with only ext-relay (@stof)
  • bug #62587 [PropertyInfo] treat mixed[] the same as array when getting types from docblocks (@xabbuh)
  • bug #62524 [Notifier][Mercure] Add support for Mercure 0.7 (@Kocal)
  • bug #62571 [Console] Fix profile invokable command (@Jibbarth)
  • bug #62577 [PropertyInfo] treat mixed[] the same as array when getting types from docblocks (@xabbuh)
  • bug #62498 [FrameworkBundle] fix merging of enabled locales (@dmaicher)
  • bug #62551 [FrameworkBundle] register attribute loader arguments in a forward-compatible way (@xabbuh)
  • bug #62465 [JsonPath] Fix throwing on quoted True/False/Null (@TamasSzigeti)
  • bug #62482 [DependencyInjection] Fix loose validation in #[Autowire] attribute (@yoeunes)
  • bug #62513 [FrameworkBundle] Add missing useAttributeAsKey calls (@MatTheCat)
  • bug #62523 [DependencyInjection] Fix state corruption in PhpFileLoader during recursive imports (@yoeunes)
  • bug #62543 [Cache] ensure compatibility with RelayCluster 0.20.0 (@xabbuh)
  • bug #62536 [Cache] ensure compatibility with Relay extension 0.20.0 (@xabbuh)
  • bug #62515 [FrameworkBundle] Allow backed enum to be used in initial_marking workflow configuration (@DemonTPx)
  • bug #62506 [DependencyInjection] Fix query_string env processor for URLs without query string (@yoeunes)
  • bug #62502 [HttpFoundation] Fix Expires response header for EventStream (@4513)
  • bug #62503 [HttpClient] Fix releasing uploaded stream resources (@nicolas-grekas)

Sponsor the Symfony project.
]]>
https://symfony.com/blog/symfony-7-4-1-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Sun, 07 Dec 2025 17:50:09 +0100 https://symfony.com/blog/symfony-7-4-1-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed#comments-list
https://symfony.com/blog/symfony-7-3-8-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Symfony 7.3.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… Symfony 7.3.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 7.3.7

  • bug #62675 [DependencyInjection] Fix dealing with errored service definitions (@nicolas-grekas)
  • bug #62488 [HttpKernel] Make #[Cache] respect all explicit cache directives set in controller (@ayyoub-afwallah)
  • bug #62665 [DependencyInjection] Revert "bug #62541 Reset resolved state when setting a parameter" (@nicolas-grekas)
  • bug #62388 [TypeInfo] Simple array should be array type (@matijn-made)
  • bug #61962 [Console] Handle signals on text input (@valx76)
  • bug #62661 [Runtime] Reuse the already created Request object when the app needs one as argument and returns a kernel (@nicolas-grekas)
  • bug #62621 [Form] Fix moneytype step (@Belhassen)
  • bug #62627 [Console] Preserve --help option when a command is not found (@santysisi)
  • bug #62619 [Messenger] Fix PHP 8.5 deprecation for pgsqlGetNotify() in PostgreSQL transport (@Shine-neko)
  • bug #62612 [Yaml] Fix regression handling blank lines in unquoted scalars (@yoeunes)
  • bug #62645 [HttpClient] Fix sharing CurlClientState between clones of CurlHttpClient instances (@nicolas-grekas)
  • bug #62541 [DependencyInjection] Reset resolved state when setting a parameter (@yoeunes)
  • bug #62602 [Cache] Fix the creation of a redis connection with only ext-relay (@stof)
  • bug #62587 [PropertyInfo] treat mixed[] the same as array when getting types from docblocks (@xabbuh)
  • bug #62524 [Notifier][Mercure] Add support for Mercure 0.7 (@Kocal)
  • bug #62577 [PropertyInfo] treat mixed[] the same as array when getting types from docblocks (@xabbuh)
  • bug #62498 [FrameworkBundle] fix merging of enabled locales (@dmaicher)
  • bug #62551 [FrameworkBundle] register attribute loader arguments in a forward-compatible way (@xabbuh)
  • bug #62465 [JsonPath] Fix throwing on quoted True/False/Null (@TamasSzigeti)
  • bug #62482 [DependencyInjection] Fix loose validation in #[Autowire] attribute (@yoeunes)
  • bug #62513 [FrameworkBundle] Add missing useAttributeAsKey calls (@MatTheCat)
  • bug #62523 [DependencyInjection] Fix state corruption in PhpFileLoader during recursive imports (@yoeunes)
  • bug #62543 [Cache] ensure compatibility with RelayCluster 0.20.0 (@xabbuh)
  • bug #62536 [Cache] ensure compatibility with Relay extension 0.20.0 (@xabbuh)
  • bug #62506 [DependencyInjection] Fix query_string env processor for URLs without query string (@yoeunes)
  • bug #62502 [HttpFoundation] Fix Expires response header for EventStream (@4513)
  • bug #62503 [HttpClient] Fix releasing uploaded stream resources (@nicolas-grekas)
  • bug #62474 [Config] Fix nullable EnumNode with BackedEnum (@yoeunes)
  • bug #62485 [DependencyInjection] Fix loop corruption in CheckTypeDeclarationsPass (@yoeunes)
  • bug #62486 [DependencyInjection] Fix invalid PHP syntax for nullable TypedReference in PhpDumper (@yoeunes)
  • bug #62487 [Security] Fix UserBadge validation bypass via identifier normalizer (@yoeunes)
  • bug #62489 [FrameworkBundle] Fix TypeError when traversing scalar values in debug:config (@yoeunes)
  • bug #62493 [Console] Fix exception message when abbreviation matches multiple hidden commands (@yoeunes)
  • bug #62471 [String] Fix normalization in trimPrefix/trimSuffix (@yoeunes)
  • bug #62456 [AssetMapper] Fix entrypoint status lost during update (@yoeunes)
  • bug #62416 [Console] Fix completion for global options values (@HypeMC)
  • bug #62458 [Workflow] Fix MethodMarkingStore crash with inherited uninitialized properties (@yoeunes)
  • bug #62459 [Routing] Fix case sensitivity for static host matching in compiled routes (@yoeunes)
  • bug #62461 [Routing] Fix localized prefix updates breaking aliases (@yoeunes)
  • bug #62460 [Routing] Fix addNamePrefix breaking aliases to external routes (@yoeunes)
  • bug #62449 [HttpKernel] Fix using MapRequestPayload on nullable arguments (@nicolas-grekas)
  • bug #62415 [HttpClient] Don't reset unused clients in data collector (@HypeMC)
  • bug #62437 [DependencyInjection] Fix preloading LazyClosure (@nicolas-grekas)
  • bug #62409 [Yaml] Align unquoted multiline scalar parsing with spec for comments (@yoeunes)
  • bug #62398 [Cache] Fix accepting named closures as early-expiration callbacks (@nicolas-grekas)
  • bug #62406 [Notifier] do not use recipient phone numbers as sender e-mail addresses (@xabbuh)
  • bug #62407 [FrameworkBundle] work around limitation in JsonResponse when the data is null (@xabbuh)
  • bug #62400 [Form] Fix EnumType choice_label logic for grouped choices (@yoeunes)
  • bug #62393 [Dependencyinjection] Call default index method when index is not provided by tag (@yoeunes)
  • bug #62372 [Cache] Recognize saveDeferred events as writes in CacheDataCollector (@yitznewton)
  • 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)

Sponsor the Symfony project.
]]>
https://symfony.com/blog/symfony-7-3-8-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Sun, 07 Dec 2025 17:17:50 +0100 https://symfony.com/blog/symfony-7-3-8-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed#comments-list
https://symfony.com/blog/symfony-6-4-30-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Symfony 6.4.30 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… Symfony 6.4.30 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 6.4.29

  • bug #62675 [DependencyInjection] Fix dealing with errored service definitions (@nicolas-grekas)
  • bug #62488 [HttpKernel] Make #[Cache] respect all explicit cache directives set in controller (@ayyoub-afwallah)
  • bug #62665 [DependencyInjection] Revert "bug #62541 Reset resolved state when setting a parameter" (@nicolas-grekas)
  • bug #61962 [Console] Handle signals on text input (@valx76)
  • bug #62661 [Runtime] Reuse the already created Request object when the app needs one as argument and returns a kernel (@nicolas-grekas)
  • bug #62621 [Form] Fix moneytype step (@Belhassen)
  • bug #62627 [Console] Preserve --help option when a command is not found (@santysisi)
  • bug #62619 [Messenger] Fix PHP 8.5 deprecation for pgsqlGetNotify() in PostgreSQL transport (@Shine-neko)
  • bug #62612 [Yaml] Fix regression handling blank lines in unquoted scalars (@yoeunes)
  • bug #62645 [HttpClient] Fix sharing CurlClientState between clones of CurlHttpClient instances (@nicolas-grekas)
  • bug #62541 [DependencyInjection] Reset resolved state when setting a parameter (@yoeunes)
  • bug #62602 [Cache] Fix the creation of a redis connection with only ext-relay (@stof)
  • bug #62577 [PropertyInfo] treat mixed[] the same as array when getting types from docblocks (@xabbuh)
  • bug #62498 [FrameworkBundle] fix merging of enabled locales (@dmaicher)
  • bug #62551 [FrameworkBundle] register attribute loader arguments in a forward-compatible way (@xabbuh)
  • bug #62482 [DependencyInjection] Fix loose validation in #[Autowire] attribute (@yoeunes)
  • bug #62513 [FrameworkBundle] Add missing useAttributeAsKey calls (@MatTheCat)
  • bug #62523 [DependencyInjection] Fix state corruption in PhpFileLoader during recursive imports (@yoeunes)
  • bug #62536 [Cache] ensure compatibility with Relay extension 0.20.0 (@xabbuh)
  • bug #62506 [DependencyInjection] Fix query_string env processor for URLs without query string (@yoeunes)
  • bug #62503 [HttpClient] Fix releasing uploaded stream resources (@nicolas-grekas)
  • bug #62485 [DependencyInjection] Fix loop corruption in CheckTypeDeclarationsPass (@yoeunes)
  • bug #62486 [DependencyInjection] Fix invalid PHP syntax for nullable TypedReference in PhpDumper (@yoeunes)
  • bug #62489 [FrameworkBundle] Fix TypeError when traversing scalar values in debug:config (@yoeunes)
  • bug #62493 [Console] Fix exception message when abbreviation matches multiple hidden commands (@yoeunes)
  • bug #62471 [String] Fix normalization in trimPrefix/trimSuffix (@yoeunes)
  • bug #62456 [AssetMapper] Fix entrypoint status lost during update (@yoeunes)
  • bug #62416 [Console] Fix completion for global options values (@HypeMC)
  • bug #62458 [Workflow] Fix MethodMarkingStore crash with inherited uninitialized properties (@yoeunes)
  • bug #62459 [Routing] Fix case sensitivity for static host matching in compiled routes (@yoeunes)
  • bug #62461 [Routing] Fix localized prefix updates breaking aliases (@yoeunes)
  • bug #62460 [Routing] Fix addNamePrefix breaking aliases to external routes (@yoeunes)
  • bug #62449 [HttpKernel] Fix using MapRequestPayload on nullable arguments (@nicolas-grekas)
  • bug #62415 [HttpClient] Don't reset unused clients in data collector (@HypeMC)
  • bug #62437 [DependencyInjection] Fix preloading LazyClosure (@nicolas-grekas)
  • bug #62409 [Yaml] Align unquoted multiline scalar parsing with spec for comments (@yoeunes)
  • bug #62398 [Cache] Fix accepting named closures as early-expiration callbacks (@nicolas-grekas)
  • bug #62406 [Notifier] do not use recipient phone numbers as sender e-mail addresses (@xabbuh)
  • bug #62407 [FrameworkBundle] work around limitation in JsonResponse when the data is null (@xabbuh)
  • bug #62400 [Form] Fix EnumType choice_label logic for grouped choices (@yoeunes)
  • bug #62372 [Cache] Recognize saveDeferred events as writes in CacheDataCollector (@yitznewton)
  • 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 #62287 [HttpFoundation] Fix AcceptHeader overwrites items with different parameters (@yoeunes)
  • 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)

Sponsor the Symfony project.
]]>
https://symfony.com/blog/symfony-6-4-30-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Sun, 07 Dec 2025 17:02:16 +0100 https://symfony.com/blog/symfony-6-4-30-released?utm_source=Symfony%20Blog%20Feed&utm_medium=feed#comments-list
https://symfony.com/blog/a-week-of-symfony-988-december-1-7-2025?utm_source=Symfony%20Blog%20Feed&utm_medium=feed This week, development activity focused on fixing the reported bugs from the first stable releases of Symfony 7.4 and 8.0. We also published a recap of the recent SymfonyCon Amsterdam conference and shared more details about the upcoming SymfonyCon Warsaw… This week, development activity focused on fixing the reported bugs from the first stable releases of Symfony 7.4 and 8.0. We also published a recap of the recent SymfonyCon Amsterdam conference and shared more details about the upcoming SymfonyCon Warsaw 2026 event.

Symfony development highlights

This week, 66 pull requests were merged (50 in code and 16 in docs) and 40 issues were closed (35 in code and 5 in docs). Excluding merges, 41 authors made additions and deletions. See details for code and docs.

6.4 changelog:

  • 714a20e: [HttpClient] fix sharing CurlClientState between clones of CurlHttpClient instances
  • 42a2f1d: [Yaml] fix regression handling blank lines in unquoted scalars
  • 8b4162f: [Messenger] fix PHP 8.5 deprecation for pgsqlGetNotify() in PostgreSQL transport
  • f39e9b9: [Console] preserve --help option when a command is not found
  • 69876aa: [Form] fix moneytype step
  • 3c26de2: [Runtime] reuse the already created Request object when the app needs one as argument and returns a kernel
  • e041cb3: [Console] handle signals on text input
  • 1083e8a: [HttpKernel] make #[Cache] respect all explicit cache directives set in controller

7.3 changelog:

  • 392e632: [PropertyInfo] treat mixed[] the same as array when getting types from docblocks
  • 55186a7: [TypeInfo] simple array should be array type

7.4 changelog:

  • 5cf2616: [DependencyInjection] don't add empty .container.known_envs in XML loader
  • 8d9bb32: [FrameworkBundle] dump bundles config reference first
  • 93ea5f6: [Console] don't discard existing aliases when constructing Command
  • 78055a2: [FrameworkBundle] order alphabetically known tags of UnusedTagsPass
  • 17c7150: [Cache] fix NullAdapter must set taggable
  • 0e8ae8f: [DependencyInjection] throw when using $this or its internal scope from PHP config files
  • f0c6c79: [DependencyInjection, FrameworkBundle] fix BC break when dumping container for build/lint commands
  • af4cee6: [DependencyInjection] ensure deprecation detection does not trigger a PHP error
  • 0d10d28: [FrameworkBundle] only register PhpConfigReferenceDumpPass in dev env with debug flag enabled
  • 92f83e4: [HttpClient] CachingHttpClient must run after UriTemplate and Scoping
  • c43a084: [Lock] fix unserializing already serialized Key payloads
  • b8b7c3e: [FrameworkBundle] fix using FailedMessages*Command with SigningSerializer
  • 0834f9a: [JsonStreamer] fix invalid json output for list of self
  • 2a6721a: [Config] define TreeBuilder default generic type
  • 3ad9f69: [Config] fix array shape generation for backed enums
  • ea169db: [Security, Http] fix OIDC discovery when multiple HttpClient instances are used
  • 0a87f0a: [DependencyInjection] allow manual bindings on parameters with #[Target]

8.1 changelog:

  • 1cdaf87: [Messenger] use clock in DelayStamp and RedeliveryStamp instead of native time classes and methods

Newest issues and pull requests

Symfony Jobs

These are some of the most recent Symfony job offers:

  • DevOps for a Symfony project at Dayuse
    Full-time - €50,000 – €60,000 / year
    Remote + part-time onsite (Paris, France)
    View details
  • Backend Symfony Developer at TreeHouse
    Full-time - €3,200 – €6,500 / month
    Rotterdam, Netherlands
    View details
  • Symfony Developer at 8mylez
    Full-time - €50,000 – €60,000 / year
    Full remote
    View details
  • Symfony Developer at FFTT
    Full-time - €50,000 – €55,000 / year
    Remote + part-time onsite (Paris, France)
    View details
  • Backend Symfony Developer at Edflex
    Full-time - €45,000 – €50,000 / year
    Remote + part-time onsite (Nantes, France)
    View details

You can publish a Symfony job offer for free on symfony.com.

SymfonyCasts Updates

SymfonyCasts is the official way to learn Symfony. Select a track for a guided path through 100+ video tutorial courses about Symfony, PHP and JavaScript.

This week, SymfonyCasts published the following updates:

They talked about us

Call to Action


Sponsor the Symfony project.
]]>
https://symfony.com/blog/a-week-of-symfony-988-december-1-7-2025?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Sun, 07 Dec 2025 09:41:00 +0100 https://symfony.com/blog/a-week-of-symfony-988-december-1-7-2025?utm_source=Symfony%20Blog%20Feed&utm_medium=feed#comments-list
https://symfony.com/blog/next-stop-symfonycon-warsaw-2026?utm_source=Symfony%20Blog%20Feed&utm_medium=feed SymfonyCon is coming to Warsaw in 2026! Still buzzing from SymfonyCon 2025…?? We already have the next stop for you!👀 Get ready, Symfony community — we’re thrilled to announce SymfonyCon Warsaw 2026, happening November 26–27, 2026 in the beautiful… Nl Blog Banner 38

SymfonyCon is coming to Warsaw in 2026!

Still buzzing from SymfonyCon 2025…?? We already have the next stop for you!👀

Get ready, Symfony community — we’re thrilled to announce SymfonyCon Warsaw 2026, happening November 26–27, 2026 in the beautiful city of Warsaw, Poland! 💙🚀

We’re returning to Warsaw, the city that hosted the first SymfonyCon in 2013, to celebrate our amazing community and push Symfony further together.🤝✨

Save the dates:💡

  • November 24–25, 2026: Two days of immersive pre-conference workshops 🧠💻
  • November 26–27, 2026: Two days of engaging talks across multiple tracks
  • November 28, 2026: Hackday — open to everyone, no ticket required

Share your best practices, experiences, and knowledge with fellow developers and be part of another exceptional edition of our international Symfony event. This will be a week full of learning, inspiration, and connection!

Just like our community loves! 😍

Buy your Early Bird tickets now and join us for an unforgettable Symfony week once more!

Discover our new destination in our video:🥳


Call for Papers is open from NOW! — Talks & Workshops 🎤

Ready to take the stage at SymfonyCon Warsaw 2026? We’re looking for diverse voices and inspiring topics 💙

✔️If you need support, join the #diversity or #speaker-mentoring channels on the Symfony Slack.

✔️Speakers get a free ticket + travel and accommodation covered!

Submit your papers today!

⏰ Submission deadline: July 1, 2026! 🚀


Joins us online!

💡Follow the "conference" blog posts to not miss anything!

Want the latest Symfony updates? Follow us and tune in from wherever you are 🌎

Banner Blog


Sponsor the Symfony project.
]]>
https://symfony.com/blog/next-stop-symfonycon-warsaw-2026?utm_source=Symfony%20Blog%20Feed&utm_medium=feed Thu, 04 Dec 2025 12:00:00 +0100 https://symfony.com/blog/next-stop-symfonycon-warsaw-2026?utm_source=Symfony%20Blog%20Feed&utm_medium=feed#comments-list