A Week of Symfony #877 (16-22 October 2023)

This week, Symfony released the first beta of Symfony 6.4 and the first beta of Symfony 7.0 so you can test them in your own apps before their final releases. In addition, the Symfony 6.3.6 maintenance version was released. Meanwhile, the development activity was frantic in order to merge and tweak all the pending new features of Symfony 6.4 and 7.0.

Symfony development highlights

This week, 132 pull requests were merged (113 in code and 19 in docs) and 65 issues were closed (45 in code and 19 in docs). See details for code and docs.

5.4 changelog:

d28330f: [Messenger] fix DoctrineOpenTransactionLoggerMiddleware
bccdccc: [Serializer] fix collecting only first missing constructor argument
754e482: [Notifier] handle Sendinblue error responses without a message key
a0df509: [HttpFoundation] do not swallow trailing = in cookie value
3d4a4e1: [Form] fix merging params & files when „multiple“ is enabled
8c02677: [Cache] remove temporary cache item file on rename() failure
5eb5ac6: [DoctrineBridge] fix tests with Doctrine DBAL 3.8
c4558e7: [HttpKernel] resolve EBADP error on flock with LOCK_SH with NFS
dc331c6: [Validator] update Portuguese translation
e58de24: [Validator] update Finnish translation
3f7ed60: [Validator] update Uzbek translation
800e613: [Validator] update Romanian translation
feecf2e: [Validator] update Arabic translation
0aa03ae: [Validator] update Basque translation
4b99b98: [Validator] update Danish translation

6.3 changelog:

7b48483: [Messenger] fix requiring symfony/deprecation-contracts
fbd3a63: [Messenger] fix graceful exit with ids
e2336db: [Validator] handle null case

6.4 changelog:

50662d0: [Scheduler] added PreRunEvent and PostRunEvent events
bc38faa: [Mime] update mime types
f13a4b1: [HttpFoundation] support Cookies Having Independent Partitioned State (CHIPS)
48133f8: [HttpFoundation] cache trusted values
d30597d: [ErrorHandler] improve fileLinkFormat handling
8ca6931: [AssetMapper] add a package specifier to importmap in case import name != package+path
7cf6f77: [AssetMapper] put importmap in polyfill so it can be hosted locally easily
934aea0: [Process] fix bug where $this->callback is never null, resulting in bad argument
abe5555: [ErrorHandler] fix file link format call in trace view
ba59377: [Scheduler] add FailureEvent
aa5ba21: [FrameworkBundle] introduce $buildDir argument to WarmableInterface::warmup to warm read-only artefacts in build_dir
364cdce: [ErrorHandler] fix expected missing return types
ec43483: [Tests] use JsonMockResponse where applicable
f4b774f: [Notifier] handle error responses without a message key in Brevo
c6930e3: [Mime] throw InvalidArgumentException on invalid form field type inside array
b9122bc: [AssetMapper] link needs as=“style“
9233ea8: [AssetMapper] disable profiler when the ‚dev server‘ respond
814bcac, 67ecd29, 7402279: enable profiling commands
1469612, c817241, 2f247cf: [FrameworkBundle, Routing, Serializer] deprecate annotations
923ecdb: [HttpFoundation, Runtime] add $flush parameter to Response::send()
347d26e: [FrameworkBundle] remove the .data_collector.command service if its class does not exist
5c4757e: [HttpKernel] add missing class alias to satisfy autoloading
dc23c8e: [WebProfilerBundle] favor Twig’s include() function over the include tag
1a72bd5: [Translation] add argument $buildDir to DataCollectorTranslator::warmUp()
eee7e8f: [DoctrineBridge] change argument $lastUsed of DoctrineTokenProvider::updateToken() to accept DateTimeInterface
e942c1c: [Messenger] add AddFifoStamp middleware to Sqs
5301b00: [HtmlSanitizer] add support for sanitizing unlimited length of HTML document
f5178e0: [FrameworkBundle, Routing, Translation, Workflow] move some compiler passes from FrameworkBundle to components
071a971: [AssetMapper] warn of missing or incompat dependencies
3f2d9d7: [AssetMapper] split ImportmapManager into two
97bbd4e: [AssetMapper] using ?specifier=* does not match unstable packages on jsdelivr
0284e95: [FrameworkBundle, Workflow] add WorflowGuardListenerPass only if it exists
18df11d: [AssetMapper] optimize memory usage by loading only compilable assets
124706b: [Workflow] add a TraceableWorkflow
4292cc0: [FrameworkBundle] fix requiring moved translation compiler passes
e57ad37: [Intl] add support for emoji 15.1
91a3a4f: [Workflow] list place and transition listeners in profiler
a19c534: [Notifier] implement overrides in Novu
0e201d1: [FrameworkBundle, Validator] allow implementing validation groups provider outside DTOs
b6418aa: [HttpKernel] add parameters kernel.runtime_mode and kernel.runtime_mode.*, all set from env var APP_RUNTIME_MODE
3b02e73: [AssetMapper] fixing bug of bad parsing of imports when an import then export are adjacent
d261eeb: [AssetMapper] allowing for files to be written to some non-local location
790f6f5: [AssetMapper] normalizing path in test to fix / comparison in Windows

7.0 changelog:

e520db5: [HttpKernel] remove deprecation layer for Profiler
950cd70: [FrameworkBundle, Routing] remove remaining deprecations

Newest issues and pull requests

[Serializer] DiscriminatorMap: Improved error message
Deprecated everything related to AnnotatedClassesToCompile
[EventDispatcher] Listeners per events which implement some interface
[RFC][Webhook] Webhook improvements

Symfony CLI

Symfony CLI is a must-have tool when developing
Symfony applications on your local machine. It includes the
Symfony Local Server,
the best way to run local Symfony applications. This week Symfony CLI released
its new 5.6.0
version with the following changes:

Warn users to use sudo to mv command in bash-installer (@crydotsnake)
Update service versions (@fabpot)
Remove guessProjectRoot() (@fabpot)
Prevent potential panic when proxy fails connecting to local server (@tucksaun)
Fix generated cloud commands (@fabpot)
Fix cloud tunnels (@fabpot)
Fix cloud CLI executor (@fabpot)
Fix a few bugs to the way we run cloud CLIs (@fabpot)
Always use the latest version of the binary (@fabpot)
Allow version 4 of the Platform.sh CLI to be installed (@fabpot)
Add support in templates (@fabpot)
Add support for discovering apps in Upsun projects (@fabpot)
Add reading in .git/config to get the project ID (@fabpot)
Add more Upsun support in error/help messages (@fabpot)
Add missing alias (@fabpot)
Add Upsun support (@fabpot)
Add –upsun option to symfony new (@fabpot)

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) API Platform 3 Part 3: Custom Resources, Chapter 27: Quick! Create a DragonTreasure DTO
(Video) API Platform 3 Part 3: Custom Resources, Chapter 28: Dtos, Mapping & Max Depth of Relations
(Video) API Platform 3 Part 3: Custom Resources, Chapter 29: Making DragonTreasureApi Writable
(Video) API Platform 3 Part 3: Custom Resources, Chapter 30: DTO & Security
(Video) API Platform 3 Part 3: Custom Resources, Chapter 31: Field Security with Patch

They talked about us

Combatting Login CSRF with Symfony
Enhancing Sylius Security with Two-Factor Authentication (2FA) Using TOTP
BunnyCDN via FlySystem on Symfony
Implementing the Factory Method Design Pattern in Symfony
Instant Messaging in Symfony: A Deep Dive into Mercure Integration
How to Create a Bundle in Symfony
Guía de Inicio Rápido para Symfony: Creación de un Proyecto y Configuración de la Base de Datos

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-Releases

PHP 8.4.1 released!

PHP 8.1.31 released!

PHP 8.3.14 released!

PHP 8.2.26 released!

Generated by Feedzy