A Week of Symfony #892 (29 January – 4 February 2024)
This week, Symfony 5.4.35, 6.3.12, 6.4.3 and 7.0.3 maintenance versions were released. The 6.3.12 version is the last one in that branch, so you should consider upgrading to Symfony 6.4 or higher soon. Meanwhile, the development activity was very intense and focused on adding new features to the upcoming Symfony 7.1 version, including a new TypeInfo component. Finally, we published a blog post about our experience upgrading websites to AssetMapper.
Symfony development highlights
This week, 85 pull requests were merged (73 in code and 12 in docs) and 54 issues were closed (51 in code and 3 in docs). Excluding merges, 47 authors made code additions and deletions. See details for code and docs.
af9fa66: [Serializer] rewrite AbstractObjectNormalizer::createChildContext() to use the provided cache_key from original context when creating child contexts
2b7706a: [Serializer] take unnamed variadic parameters into account when denormalizing
4eb23d8: [Mailer] throw TransportException when unable to read from socket
46694f6: [Serializer] do not overwrite the cache key when it is false
4a124ac: [TwigBridge] separate child and parent context in NotificationEmail on writes
2e025f9: [HttpClient] fix pausing responses before they start when using curl
f53e4ae: [DependencyInjection] support lazy evaluated exception messages with Xdebug 3
a67e8bd: [Notifer] set messageId of SentMessage in Smsapi
a63f545: [Mime] fix serializing uninitialized RawMessage::$message to null
27346bc: [Messenger] fix TypeError should throw MessageDecodingFailedException in PhpSerializer
0566c39: [Routing] fixed priority getting lost when setting localized prefix
f0a9916: [Console] allow false as a $shortcut in InputOption
4e6d1b0: [String] fix plural of word ending by pus
98435e4: [Mailer] fix usage of stream_set_timeout in case of microseconds
84ae858: [Console] fix color support for TTY output
893d30e: [Mailer] fix sender header encoding in Mailgun
2fae7d5: [MonologBridge] fix context data and display extra data
eb32f49: [DependencyInjection] #[Autowire] attribute should have precedence over bindings
78f82b9: [HttpKernel] fix RequestPayloadValueResolver handling error with no ExpectedTypes
947cf27: [Mailer] fix attachment handling in Scaleway
7aab885: [Form] use self-closing input syntax again
84f5bdc: [DependencyInjection] fix loading all env vars from secrets when only a subset is needed
c3879f6: [Translation] fix constant domain resolution in PhpAstExtractor
a318801: [Validator] fix option filenameMaxLength to the File constraint
30810dd: [Notifier] updated the NTFY notifier to run without a user parameter
af74d12: [FrameworkBundle] fix ConfigBuilderCacheWarmer should be non-optional
cb68bf3: [Config] provide more precise phpdoc for FileLocatorInterface::locate()
cb0817c: [DoctrineBridge] fix detection of Xml/Yaml driver in DoctrineExtension
4fe7828: [AssetMapper] fix JavaScript compiler load imports from JS strings
30a02c4: [AssetMapper] fix exception if assets directory is missing in production
2ba3505: [HttpFoundation] fix clearing CHIPS cookies
61794ae: [Mailer] fix payload converter getReason in Mailgun
ee07003: [HttpKernel] fix including welcome page multiple times
3cbadd8: [Console] remove needless state from QuestionHelper
1a75311: [DependencyInjection] fix replacing arguments
5091cd5: [Mailer] add DSN param auto_tls to disable automatic STARTTLS in Smtp
4a49af8: [DependencyInjection] dump enums with the !php/enum tag in Yaml config
6fc9000: add Rector as a Symfony 7.1 sponsor
5c7f4b0: add PHPDoc to attributes properties
06c7b81: [ExpressionLanguage] add min and max php functions
c8d24c5: [FrameworkBundle] add SecretsRevealCommand
f0f3040: [FrameworkBundle, HttpClient] add ThrottlingHttpClient to limit requests within a timeframe
e5d1e1e: [PropertyInfo] restrict access to PhpStanExtractor based on visibility
bf3b54b: [Intl] move emoji data in a new component
6fd41bb: [Serializer] add DateTimeNormalizer::CAST_KEY context option
0c1de1b: [DependencyInjection] add Lazy attribute for classes and arguments
3a4889f: [Security] add CAS 2.0 AccessToken handler
d00444c: [Yaml] allow to get all the enum cases
a770fae: [Validator] add additional versions (*_NO_PUBLIC, *_ONLY_PRIV and *_ONLY_RES) in IP address & CIDR constraint
87f1a34: [Serializer] add Default and „class name“ default groups
4d8c8bc: [Console] InputArgument and InputOption code cleanup
3feccf7: [HttpFoundation] add QueryParameterRequestMatcher
1e358d9: [HttpFoundation] add HeaderRequestMatcher
29632fd: [Config] allow custom meta location in ResourceCheckerConfigCache
e4cfb66: [TypeInfo] introduce component
d2d36b5: [CssSelector] add support for :is() and :where()
40a2cfb: [Yaml] fix Yaml Parser with quote end in a new line
f9bdfb2: [TwigBridge] allow twig:lint to excludes dirs
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.8.5
and 5.8.6
versions with the following changes:
Make sure Doctrine configuration takes precedence over Platform.sh configuration (@fabpot)
Add DB versions to Doctrine config when using Docker locally (@fabpot)
Fix Doctrine URLs (do not encode to avoid having %xxx% that would be seen as parameter name to replace by Symfony DI) (@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.
This week, SymfonyCasts published the following updates:
(Live Stream) Live Stream #7: Let’s build some Twig UI Components
(Video) Upgrading & What’s in Symfony 7: Upgrading to Symfony 6.4
(Video) Upgrading & What’s in Symfony 7: Flex Recipe Updates
(Video) Upgrading & What’s in Symfony 7: Encore, StimulusBundle & their Recipe Changes
(Video) Upgrading & What’s in Symfony 7: Goodbye SensioFrameworkExtraBundle
(Video) Upgrading & What’s in Symfony 7: Finding & Eliminating Deprecations
Newest issues and pull requests
Leverage PHP 8.4’s native parsing of HTML5
They talked about us
Symfony Station Communiqué – 02 February 2024
Creating a Custom Hydrator in Doctrine and Symfony for Enhanced Performance with DTOs
Implementing Workflow Component In Symfony With Multiple States Simultaneously
LDAP authentication into your Symfony application
Wars of Symfony Runtimes: A Performance Odyssey
SensioLabs and Symfony in Mallorca for the Ibexa 2024 conference
Understanding and Implementing the Symfony Workflow Component in Laravel
Déployer une application Symfony et Vue.js sur Cloud Run
Logstash, Manticore, Nginx и Symfony: сбор, агрегация и быстрый поиск логов
Call to Action
Follow Symfony on Twitter and retweet this article.
Subscribe to the Symfony blog RSS and never miss a Symfony story again.
Symfony Blog