A Week of Symfony #866 (31 July – 6 August 2023)

This week, the upcoming Symfony 6.4 and 7.0 versions merged more than 60 pull requests with new features. Meanwhile, Symfony launched a new initiative to help you organize your next Symfony-related meetup.

Symfony development highlights

This week, 137 pull requests were merged (114 in code and 23 in docs) and 97 issues were closed (64 in code and 33 in docs). Excluding merges, 44 authors made changes. See details for code and docs.

5.4 changelog:

b458745: [DoctrineBridge] allow to remove LazyLoaded listeners by object
f299846: [Workflow] fix MermaidDumper when place contains special char
2f1ba4c: [Messenger] add forward compatibily with php-amqp v2
c43dcc6: [Cache] harden LockRegistry tests by considering PHP files only

6.3 changelog:

17415c6: [Clock] load function only if not loaded before
fbb3f05: [Crawler] fix regression where cdata nodes will return empty string
2f8af44: [DependencyInjection, HttpKernel] fix using #[AutowireCallable] with controller arguments
bbb5f5c: [DependencyInjection] do not add return in LazyClosure when return type of closure is void
ceb0103: add before/after examples to 6.3 UPGRADE guide

6.4 changelog:

10487c7: User shorter closures
07eea6d: [Mailer] precise AbstractApiTransport::getRecipients signature
62904a6: [Scheduler] add AbstractTriggerDecorator
139419d: do not declare the PSR-7 bridge to be replaced by symfony/symfony
be8897b: [Notifier] support local development for sns by adding sslmode option
46386c2: avoid inconsistent override of getRecipients
15e082d: [Serializer] groups annotation/attribute on class
11b538c: [BrowserKit] add argument $serverParameters to click() and clickLink()
9d47ba3: [PsrHttpMessageBridge] support php-http/discovery for auto-detecting PSR-17 factories
d660091: [Scheduler] make ScheduledStamp send-able
fbb3f05: [Crawler] fix regression where cdata nodes will return empty string
185941e: [Workflow] add support for storing the marking in a property
489c887: [Translation] Phrase translation provider
3b34568: [Serializer] add support for seld/jsonlint
3b6d372: [HttpKernel] RequestPayloadValueResolver Add support for custom http status code
f309b1d: [Uid] add more PHP doc to „export“ functions
ae19099: [HttpKernel] add reset() implementation in DataCollector
f40687e: [FrameworkBundle, Serializer] add TranslatableNormalizer
5fcaa74: [Form] removing self-closing slash from input fields
1300cc2: [Workflow] add a profiler
268a359: [Validator] validate time without seconds
e66a68c: [Process] support using Process::findExecutable() independently of open_basedir
3a2b8cb: [Mime] update mimetypes
7597687: [Intl] add support for ISO 3166-1 numeric codes
db1d6eb: [HttpKernel] strip exception file paths from log messages
3303fa2: [Workflow] support multiline descriptions in PlantUML
72c80dd: [Notifier] document Amazon Notifier SSLMODE option
7a8959b: [Form] use logical ordering for type and extension methods
3db10d5: [FrameworkBundle] remove redundant interface_exists() check
c864846: [HttpKernel] support backed enums in #[MapQueryParameter]
08b93ad: [FrameworkBundle] enable json_decode_detailed_errors in dev by default
2f85c15: [Uid] add additional type information to TimeBaseUuidFactory constructor
cf3f52a: [Security] add generic to UserProviderInterface
3c9bf28: [FrameworkBundle] remove obsolete feature detection from cache warmers
0ba946a: [Process] introducing a new PhpSubprocess handler
623e921: [Workflow] add PHP attributes to register listeners and guards
f956606: [Scheduler] add –date to schedule:debug
fa3d5d4: [Scheduler] add some docs to explain the behavior
20cefc8: [Scheduler] only use toString if defined for message
6522566: [Scheduler] mark component as non experimental
7e4793b: [AssetMapper] mark component as non experimental
5da7dbf: [Webhook] mark component as non experimental
18b9cad: [RemoteEvent] mark component as non experimental
bbb5f5c: [DependencyInjection] do not add return in LazyClosure when return type of closure is void
dc94413: [FrameworkBundle] fix minimum required HttpKernel component version
0ce5112: [RemoteEvent, Webhook] add Mailjet support
608c3ed: [HttpFoundation] use Symfony exception for request unexpected values
f78bbe0: [Scheduler] display friendly dates in debug:schedule
49a1253: [RemoteEvent, Webhook] add Brevo support
532dcda: [MonologBridge, SecurityBundle] remove calls to TokenInterface::isAuthenticated()
0a9ef56: [FrameworkBundle] support APP_BUILD_DIR
ec7d86a: [SecurityBundle] add $badges argument to Security::login
bee1b9d: [Scheduler] add –all to debug:schedule
7ebccf7: [DomCrawler, FrameworkBundle] add assertAnySelectorText*
c43dcc6: [Cache] harden LockRegistry tests
34f46c6: [Security] do not make PasswordUpgraderInterface a generic
6d7ca72: [FrameworkBundle, HttpKernel, MonologBridge] revisit wiring of debug loggers
cd53a82: improve 6.4 UPGRADE guide

7.0 changelog:

2b86aa3: [Security] remove unused code about ROLE_PREVIOUS_ADMIN
934dbad: [PsrHttpMessageBridge]
ae04717: [MonologBridge] remove Monolog 1 compat from FirePHPHandlerTest
b7ac126: improve upgrade guide 7.0 + remove 6.x guides
4e19a66: [FrameworkBundle, MonologBridge] remove recently deprecated symbols

Newest issues and pull requests

[Validator] Simplify Constraint with target = class
[Scheduler] dynamic schedules
[Messenger] ability to manually ack a message
[HttpFoundation] Introducing a ParameterBag::match method
[Security] Ability to add roles in form_login_ldap by ldap group
Optional parsable output for debug:translation

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.5.8
version with the following changes:

Update supported Platform.sh services (@fabpot)
Update deps (@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) AssetMapper: Modern JS with Zero Build System, Chapter 16: Page-Specific CSS & JS
(Video) AssetMapper: Modern JS with Zero Build System, Chapter 17: Excluding Files
(Video) AssetMapper: Modern JS with Zero Build System, Chapter 18: Deploying to Platform.sh
(Video) AssetMapper: Modern JS with Zero Build System, Chapter 19: Configuring the Platform.sh Deploy
(Video) AssetMapper: Modern JS with Zero Build System, Chapter 20: Deploying the Assets

They talked about us

Symfony Station Communiqué – 04 August 2023
6x faster Docker builds for Symfony and API Platform projects
Validating requests on Symfony Framework
SpiriitFormFilterBundle – Bundle Symfony
A new way to squash your Doctrine migrations
Creating a Social Media Aggregator with Symfony
Symfony vs Flask vs Spring Boot — usability and coding speed
How to create a sitemap.xml on Symfony Blog without Bundle
How to publish domain events with doctrine listener
Join us as we explore the strange new world of Symfony’s AssetMapper via SymfonyCast
Des images Docker construites 6 fois plus rapidement pour vos projets Symfony et API Platform

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.3.9 released!

PHP 8.2.21 released!

PHP 8.1.29 released!

Generated by Feedzy