This week, development activity focused on the upcoming Symfony 7.4 and 8.0 versions, which will deprecate and remove many features. In addition, we published a case study about Yousign. Finally, we're preparing everything for the SymfonyOnline June 2025 conference, which starts next week.

Symfony development highlights

This week, 79 pull requests were merged (59 in code and 20 in docs) and 57 issues were closed (41 in code and 16 in docs). Excluding merges, 27 authors made 3,730 additions and 2,695 deletions. See details for code and docs.

6.4 changelog:

  • 851f0ff: [Intl] ensure data consistency between alpha and numeric codes
  • 8175960: [SecurityBundle] remove AnonymousFactory leftovers
  • 91964c1: [Yaml] fix support for years outside of the 32b range on x86 arch on PHP 8.4
  • 17fa1fd: [Mailer] use STARTTLS for SMTP with MailerSend
  • de57965: [FrameworkBundle] ensureKernelShutdown in tearDownAfterClass
  • 09d02eb: [Form] fix handling the empty string in NumberToLocalizedStringTransformer
  • ac67b6a: [DependencyInjection] improve docblock on compile()

7.2 changelog:

  • 39d4e97: [TypeInfo] handle key-of and value-of types
  • 47f3667: [PhpUnitBridge] skip bootstrap for PHPUnit >=10
  • 16efe96: [DependencyInjection] fix ServiceLocatorTagPass indexes handling

7.3 changelog:

  • 46dca3d: [HttpKernel] pass log level instead of exception to resolve the logger
  • 1023bc7: [WebProfilerBundle] fix toolbar with ajax requests not closing
  • 37f5341: [FrameworkBundle] set NamespacedPoolInterface alias to cache.app
  • dd64f65: [Ldap] fix LdapUser::isEqualTo
  • 1b70214: [FrameworkBundle] don't register SchedulerTriggerNormalizer without symfony/serializer
  • effb4a7: [TypeInfo] fix merging collection value types with union types
  • 70ccb7e: [TypeInfo] fix type alias resolving
  • 0577b23: [JsonStreamer] lazyGhostsDir should be optional
  • e9eb3e7: [JsonPath] always use brackets notation with JsonPath::key()
  • 42e5ad5: [Security] keep roles when serializing tokens
  • 9ec87bf: [HttpClient] suggest amphp/http-client v5 by default
  • cf3b527: [JsonPath] better handling of unicode chars in expressions

7.4 changelog:

  • 5aea219: [Process] improve typing for process callback
  • 33ecd1c: [Routing] allow query-specific parameters in UrlGenerator using _query
  • 0c00ffe: [PhpUnitBridge] add strtotime() to ClockMock

8.0 changelog:

  • 6251fbc, 68fce26: bump Symfony 8 to PHP >= 8.4
  • 2c24370: enforce return types on all components
  • 31986cd: [Console] remove deprecated code
  • 60a3bc9: [OptionsResolver] remove support for nested options definition via setDefault(), use setOptions() instead
  • 9a44448: [VarExporter] remove LazyGhostTrait and LazyProxyTrait in favor of native lazy objects
  • 5c5e440: [FrameworkBundle] enable the property-info constructor extractor by default
  • 22d14ee: [PropertyInfo] remove PropertyInfo's Type

Newest issues and pull requests

Symfony Jobs

These are some of the most recent Symfony job offers:

  • Lead Symfony Developer at anyIP
    Full-time - $3,000 – $5,000 / month
    Full remote
    View details
  • Symfony Developer at Les Echos Le Parisien Services
    Full-time - €50,000 – €60,000 / year
    Remote + part-time onsite (Paris (15e), France)
    View details
  • Lead Symfony Developer at Gravitas
    Full-time - €72,000 / year
    Full remote
    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

Published in #A week of symfony