This week, development focused on the upcoming Symfony 7.4 and 8.0 releases. We added new features such as the ObjectMapperAwareInterface, improved value transformers in JsonStreamer, and enabled loading JSON via imports in AssetMapper. We also removed deprecated features, including Doctrine entity auto-mapping. In addition, we announced more details about SymfonyCon Amsterdam 2025.

Symfony development highlights

This week, 72 pull requests were merged (62 in code and 10 in docs) and 34 issues were closed (22 in code and 12 in docs). Excluding merges, 31 authors made 7,822 additions and 1,836 deletions. See details for code and docs.

6.4 changelog:

  • 578c2e3: [WebProfilerBundle] increase compatibility of toolbar with Turbo
  • da8bc22: [FrameworkBundle] don't use Email::VALIDATION_MODES in Configuration
  • 3261116: [Cache] fix Redis compatibility with different Relay versions
  • 4af9890: [Form, PhpUnitBridge] remove usage of noop ReflectionProperty::setAccessible()
  • df58224: [Console] fix JSON description for negatable input flags
  • 39ff860: [Mailer] update Brevo webhook IPs
  • e092b46: [WebProfilerBundle] fix missing indent on non PHP files opended in the profiler
  • 97429b7: [Config] do not generate unreachable configuration paths

7.2 changelog:

  • 3540952: [Lock] fallback to eval when LOAD fails due to missing script
  • dabfa59: [Security] fix added $token argument to UserCheckerInterface::checkPostAuth()
  • c3eb27f: [Config] fix GeneratedConfigTest not being able to generate snapshots anymore
  • de2a7ab: [Serializer] handle invalid mapping type property type

7.3 changelog:

  • 5bf8b3e: [ObjectMapper] fix test using LazyObjectInterface
  • cf7da9e: [JsonPath] fix parsing invalid Unicode codepoints
  • 51ee4ed: [ObjectMapper] skip reading uninitialized values
  • d2b1513: [Console] fix TreeHelper::addChild when providing a string

7.4 changelog:

  • 5db13d5: [ObjectMapper] add ObjectMapperAwareInterface to set the owning object mapper instance
  • b065b9a: [Semaphore] enabled usage of EVALSHA and LOAD SCRIPT over regular EVAL
  • 6e14bca: remove legacy config for disabling annotations
  • 8150927: [HttpFoundation] simplify UriSigner::verify to use match
  • 3686363: [Translation] add StaticMessage
  • 8c3d388: [JsonStreamer] provide current object to value transformers
  • d3a0df0: [JsonStreamer] add include_null_properties option
  • edae79d: [Security] support union type for #[CurrentUser] attribute
  • da5988e: [Validator] remove docblocks for deprecated argument types
  • c7493bb: [AssetMapper] add support for loading JSON using import statements
  • 2663b3b: [Validator] add min and max in both error messages of LengthValidator
  • d219ebe: [BrowserKit] add PHPUnit constraints: BrowserHistoryIsOnFirstPage and BrowserHistoryIsOnLastPage
  • 6832421: [Serializer] add CDATA_WRAPPING_NAME_PATTERN support to XmlEncoder

8.0 changelog:

  • 8198373: remove legacy code paths that rely on feature checks
  • 6e5a24c: [DoctrineBridge] remove support for auto-mapping Doctrine entities to controller arguments
  • 419f671: [FrameworkBundle] remove deprecated TranslationUpdateCommand
  • ec69e60: [AssetMapper] make argument $projectDir of ImportMapRequireCommand mandatory
  • eaecccb: [Messenger] remove text format when using the messenger:stats command
  • 265d4b2: [HttpFoundation] trigger PHP warning when using Request::sendHeaders() after headers have already been sent
  • 000ade9: [Security] throw when passing an empty string as $userIdentifier and tighten AuthenticatorManager and OidcTokenHandler arguments
  • 7d3f4fe: [DependencyInjection] remove !tagged tag, use !tagged_iterator instead
  • 474bd79: [Translation] remove TranslatableMessage::__toString() method, use trans() or getMessage() instead
  • dc34dbd: clean up remaining ExpectUserDeprecationMessageTrait usages
  • 2c0dd69: declare new parameters on interfaces and methods explicitly

Newest issues and pull requests

Symfony Jobs

These are some of the most recent Symfony job offers:

  • Lead Symfony Developer at Vacatia
    Full-time - $150,000 – $180,000 / year
    Remote + part-time onsite (Portland, United States)
    View details
  • Symfony Developer at DocuPet Inc.
    Full-time - CA$115,000 – CA$135,000 / year
    Full remote
    View details
  • Backend Symfony Developer at Wappnet Systems Pvt Ltd
    Full-time - ₹1,000,000 – ₹2,000,000 / year
    Ahmedabad, India
    View details
  • Symfony Developer at Neuron Academy
    Contract / Freelance - $25 – $50 / hour
    Full remote
    View details
  • Symfony Developer at Fegmo Inc
    Full-time - ₹600,000 – ₹2,000,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