A Week of Symfony #812 (18-24 July 2022)

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 FFICData and FFICType 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

Automatically create a RequestDataObject from the Request
[DX][RFC] Provide the commands to run Symfony Tests through Docker
Add Support of Enums for Tagged Service Key

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:

(Video) Symfony 6 Fundamentals: Services, Config & Environments, Chapter 16: Bind Arguments Globally
(Video) Symfony 6 Fundamentals: Services, Config & Environments, Chapter 17: Named Autowiring & Scoped HTTP Clients
(Video) Symfony 6 Fundamentals: Services, Config & Environments, Chapter 18: Non-Autowireable Services
(Video) Symfony 6 Fundamentals: Services, Config & Environments, Chapter 19: Controllers are Services Too!

They talked about us

Symfony Station Communiqué – 22 July 2022
Creating a Symfony project from zero to success in 52 weeks (week 3)
How to deploy PHP application to AWS using AWS CodeDeploy and Github actions for beginners
Symfony ElasticSearch — Search service and Query builder — Sergii Demianchuk Blog
How to setup docker-compose for Symfony projects
How to add a Bootstrap Theme in Sylius
Converting umlaute with symfony String component

Call to Action

Follow Symfony on Twitter and retweet this article.
Subscribe to the Symfony blog RSS and never miss a Symfony story again.

Sponsor the Symfony project.

Symfony Blog
Read More

Latest News


PHP 8.1.9 released!

PHP 8.0.22 released!

PHP 7.4.30 released!