This week was the most intense in Symfony development activity in months. We completed and merged tens of new features and improvements for the upcoming Symfony 6.2 version, including: a Doctrine entity argument resolver, options to sort files in case insensitive mode and by extension and size, console autocompletion for zsh shells, security logout improvements and new options, etc.

Symfony development highlights

This week, 107 pull requests were merged (69 in code and 38 in docs) and 64 issues were closed (33 in code and 31 in docs). Excluding merges, 49 authors made 615,118 additions and 489,977 deletions. See details for code and docs.

4.4 changelog:

  • ab1a02f: [PropertyInfo] make sure nested composite types do not crash ReflectionExtractor
  • a9ab336: [FrameworkBundle] fix tests that use deprecated callable syntax
  • 52a2eab: [Mime] fix inline parts when added via attachPart()
  • 64afde5: [DependencyInjection] fail gracefully when attempting to autowire composite types
  • 8e72b1f: [FrameworkBundle] fail gracefully when forms use disabled CSRF
  • 080b8f3: [Mime] quote address names if they contain parentheses
  • fa063a1: [HttpKernel] don't throw on 304 Not Modified in HttpCache

5.4 changelog:

  • 14d5083: [Serializer] fix inconsistent behaviour of nullable objects in key/value arrays
  • c89721e: [Serializer] ignore getter with required parameters
  • 47cb70b: [DoctrineBridge] avoid calling AbstractPlatform::hasNativeGuidType()
  • 8e34f9a: [Console] get full command path for command in search path

6.2 changelog:

  • abcbbf2: [Form] ChoiceType choices must support TranslatableInterface
  • 485843e: [VarDumper] add FFI\CData and FFI\CType types
  • c5aeafe: [Mailer] add Infobip bridge
  • ca4615a: [Dotenv] variable filter added to debug command
  • e6b8029: [DoctrineBridge] add NAME const for UID types
  • c3288f6: [Uid] add toHex()) method to AbstractUid class
  • c61154d: [Mailer] allow custom hosts for ses+smtp with amazon mailer
  • 86f78aa: [Security] add a method in the security helper to ease programmatic logout
  • 2949e9c: [Messenger] make Redis messages countable
  • 5d9b6d2: [Security] don't allow empty username or empty password
  • 397abb6: [Mailer] make max_per_second option configurable via DSN
  • 5675aa8: [DoctrineBridge] add an Entity Argument Resolver
  • 703596e: [Mailer] SMTP Transport to provide the (final) Message-ID if available
  • e89f0ff: [Security] allow configuring a target url when switching user
  • ab3d9fc: [Console] refactor isTtySupported()
  • 303ea78: [Validator] add the match option to the Choice constraint
  • 8876dbc: [Messenger] add options to FailedMessagesShowCommand
  • c7d7ce9: [FrameworkBundle] add service and alias deprecation message to debug:container
  • 951352e: [SecurityBundle] add shortcut option to enable logout CSRF protection
  • ef33227: [FrameworkBundle] add resolve-env option to debug:config command
  • 9ccf365: [Validator] add "negate" option to Expression constraint
  • 8f7d72e: [Security] set custom lifetime for login link
  • ac87122: [Serializer] add visibility context option in PropertyNormalizer
  • ddf63bd: [Cache, WebProfilerBundle] add adapter class to Cache DataCollector
  • 57b24fe: [HttpFoundation] rename Request::getContentType to getContentTypeFormat
  • 25c8806: [Finder] case insensitive file sort
  • 3c19f30: [Finder] add methods to sort by extension & size
  • 7b5cb25: explain status codes in comments
  • 6babf86: [Console] fix comparison with completion API version
  • 8be4d28: [Dotenv] run test in a separate process to have clean global state
  • b0dc3f3: [HttpFoundation] fix deprecation message style
  • d3a98ba: [DependencyInjection] update ContainerBag to throw ParameterNotFoundException instead of InvalidArgumentException
  • 79ee957: [Console] zsh shell autocompletion
  • 6c8c93d: [Console] add Ansi8 (256 color) support, improve true color (Ansi24) support detection
  • 17ae148: [Notifier] add Notification::exception()
  • 7f7d839: [Mime] add DataPart::setContentId()
  • 9b6dba1: [Console] add support for resuming a progress bar

Newest issues and pull requests

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.

These were some of the most relevant SymfonyCasts updates of the week:

They talked about us

Call to Action

Published in #A week of symfony