This week, Symfony development activity soared, with tens of bug fixes and new features merged across all components. The new features include support for PostgreSQL LISTEN/NOTIFY in the Messenger component, allow to define priorities in route annotations, the option to define a reusable set of constraints and some improvements related to deprecations. In addition, the SymfonyLive Paris 2020 conference announced the first part of its schedule.
Symfony development highlights
This week, 102 pull requests were merged (86 in code and 16 in docs) and 73 issues were closed (62 in code and 11 in docs). Excluding merges, 63 authors made 7,215 additions and 865 deletions. See details for code and docs.
- 78641e0: [Config] don't catch instances of Error
- 6c96706: [DomCrawler] skip disabled fields processing in Form
- 5144487: [FrameworkBundle] check non-null type for numeric type
- 1f053f9: [PhpUnitBridge] fixed running skipped tests expecting only deprecations
- f758eca: [Yaml] fail properly on empty object tag and empty const tag
- ef4dcdb: [Validator] check for __get method existence if property is uninitialized
- 28eedb8: [Form] fixed handling of empty_data's \Closure value in Date/Time form types
- adacae6: [Security] replaced 403 with 401 in onAuthenticationFailure method
- 36ffca3: [Security] improved info UserPasswordEncoderCommand
- e41a312: [DoctrineBridge] fixed submitting ids with query limit or offset
- f350f53: [HttpFoundation, FrameworkBundle] fixed support for samesite in session cookies
- 3ebe15e: [Validator] added the missing Mongolian translations
- a2d6d11: [HttpClient] fixed HttpClientDataCollector when handling canceled responses
- 87c11c2: [TwigBridge] show both missing packages for NotificationMail in the same error message
- 7dc5d64: [Translation] prefer intl domain when adding messages to catalogue
- 435f4d5: [Mailer] fix broken mandrill http send for recipients with names
- c29989d: [Config] prevent potential \TypeError in XmlReferenceDumper
- eaec5d6: [ErrorHandler] escape variable in Exception template
- 3750988: [FrameworkBundle] fix HTTP client config handling
- 84d32ac: [PhpUnitBridge] fix some errors when using serialized deprecations
- a59ce75: [DependencyInjection] fix support for multiple tags for locators and iterators
- b1b64c1: [DependencyInjection] unknown env prefix not recognized as such
- b6acfae: [PHPunit bridge] provide current file as file path
- e2dbff5: [PhpUnitBridge] fix getting the vendor/ dir for tests
- 53fcf72: [Console] consider STDIN interactive
- cb42480: [Mailer] don't ping the SMTP server before sending every message
- 138439a: [ErrorHandler] never throw on warnings triggered by assert() and set assert.exception=1 in Debug::enable()
- 2d89ed1: [Process] throw when PhpProcess::fromShellCommandLine() is used
- 5da9cf3: [HttpClient] don't display any content when none has been collected
- 74ac542: [HttpClient] adding NoPrivateNetworkHttpClient decorator
- fafe576: [String] added LazyString to provide memoizing stringable objects
- fc30e61: [WebProfiler] improve HttpClient Panel
- 981a771: [Messenger] validate options for AMQP and Redis Connections
- 8e22719: [VarDumper] add a RdKafka caster
- 7784d9f: [Filesystem] add $suffix argument to tempnam()
- f23aa96: [Translation] introduce a way to configure the enabled locales
- cf9f5a0: [Cache] add couchbase cache adapter
- 9613f84: [Mailer] fix MandrillHttpTransport::getRecipients()'s call
- e3fa80a: [Messenger] add support for PostgreSQL LISTEN/NOTIFY
- 9b69b08: [DomCrawler] extracted code to expand an URI to UriExpander
- c8725bf: [Notifier] remove superfluous parameters in Message::fromNotification()
- 7a4637e: [FrameworkBundle] use framework.translator.enabled_locales to build routes default _locale requirement
- 626999c: [FrameworkBundle] use MailerAssertionsTrait in KernelTestCase
- 753d4a2: [Notifier] added possibility to extract path from provided DSN
- a66b645: [Validator] add Validation::createCallable()
- 2aca43f: [Messenger] add support for abstract handlers
- 71de431: [SecurityBundle] add service option in remember_me firewall
- fc20461: [TwigBridge] Updated Bootstrap theme to make the file browser button translatable
- 99ca1ab: [Serializer] add support for stdClass
- 3bcf8cb: [DependencyInjection] enable auto alias compiler pass by default
- 829fc72: [Routing] add priority option to annotated routes
- e87f86b: [DependencyInjection] added possibility to define services with abstract arguments
- 4e659ca: [OptionsResolver] add new OptionConfigurator class to define options with fluent interface
- 31da954: [String] remove the experimental status
- e662cc4: [String] add the s() helper method
- ca570d3: [Cache] add SodiumMarshaller
- cd5c1d6: [YAML] improve performance of YAML parser
- f4490a6: [HttpFoundation] make dependency on Mime component optional
- f53ea3d: [Validator] allow to define a reusable set of constraints
- 32ce188: [Validator] add a constraint to sequentially validate a set of constraints
- 4bc1ea2: [Messenger] add receiving of old pending messages
- 916ff10: [MonologBridge] add Mailer handler
- 55e2c5b: [Contracts/Deprecation] don't use assert() and rename to trigger_deprecation()
- ebdcd63: leverage trigger_deprecation() from symfony/deprecation-contracts
- 9bfa258: [Translation] support name attribute on the xliff2 translator loader
Newest issues and pull requests
- [Messenger] Implement Redis Streams for Redis Version 5.0
- [Messenger][RFC] Kafka transport
- [String] Add preserve parameter to truncate method
- Allow HTML content in form labels
- [Security][DX] Make ldap user provider extensible
They talked about us
- Scaling Symfony Consumers using Kubernetes
- An introduction to Symfony Messenger
- DoctrineCacheBundleが非推奨になったのでSymfonyのCacheを使うようにした
- 2020年から始めるSymfonyフレームワーク
Upcoming Symfony Events
- Beyond HTTP with serverless Symfony, and more!: London, United Kingdom (February 26)
- Treffen der Symfony User Group Hamburg: Hamburg, Germany (February 4)
- Symfony User Group Osnabrück: Osnabrück, Germany (March 12)
- OroVibe 2020: The Place to Be for B2B eCommerce Innovation: Paris, France (March 18)
Call to Action
- Follow Symfony on Twitter and retweet this article.
- Subscribe to the Symfony blog RSS and never miss a Symfony story again.