This week, Symfony continued working on adding compatibility with the latest PHPUnit versions and made the PHPUnit Bridge component act as a polyfill for newest PHPUnit features. The translations of validation messages were also updated for some languages. Finally, Symfony announced some changes for standard version releases to align their end of support for both regular and security issues.
Symfony development highlights
This week, 141 pull requests were merged (121 in code and 20 in docs) and 69 issues were closed (68 in code and 1 in docs). Excluding merges, 50 authors made 8,033 additions and 4,067 deletions. See details for code and docs.
- 828ce34: [FrameworkBundle] detect indirect env vars in routing
- 2f97ab1: used PhpUnit native assertions in filesystem checks
- f752416: Used namespaced Phpunit classes
- f38f6e7: [Intl] support DateTimeInterface in IntlDateFormatter::format
- b5e99f3: [PhpUnitBridge] fixed PHPUnit 8.3 compatibility where method handleError was renamed to __invoke
- 6dfeeb5: [Form] fixed PHPdoc inconsistencies
- 08573a1: used assertStringContainsString when needed
- 443e923: used assertContainsEquals when needed
- 87c8561: used assertEqualsWithDelta when needed
- 4123465: [ProxyManagerBridge] added polyfill for unmaintained version
- c88d125: fixed inconsistent return points
- f8a3517: fixed some return type annotations
- 48859fd: [FrameworkBundle, Config] ignored exceptions thrown during reflection classes autoload
- 854f5d1: [Lock] throw NotSupportException consistently
- e48d2c1: [HttpKernel] clarified error handler restoring process again
- ce09c31: [HttpKernel] added resilience against file_get_contents() race conditions
- 889f454: [FrameworkBundle, TwigBridge] fixed test compatibility with 4.x components
- e848729: [Serializer] fixed negative DateInterval
- 3dab7c9: Updated the Persian translation
- e5e3d6a: Updated the Slovak translation
- c474e34: Updated the Danish translation
- 143789c: Updated the Serbian Latin translation
- 5e3bfad: Updated the Serbian Cyrillic translation
- c674042: [Messenger] removed named parameters and replaced with ? placeholders for sqlsrv compatibility
- 02c1dec: [HttpClient] used "idle" instead of "inactivity" when telling about the timeout option
- b6d6c6b: [Messenger] fixed ConsumeMessagesCommand configuration
- a3aaaa1: [Mime] fixed wrong Mime types
- b406466: [TwigBridge] passed translation parameters to the trans filter
- fda49e6: [HttpClient] removed CURLOPT CONNECTTIMEOUT MS curl opt
- 51eb41b: [HttpFoundation] clear invalid session cookie
- 1ff2ab3: [HttpKernel] trim the leading backslash in the controller init
- 2f2d1aa: [DependencyInjection] improved an exception message
- 8b699ae: [Mime] created mailBody with only attachments part present
- c754f15: [Form] type cannot be a FormTypeInterface anymore
- b74ccda: [PhpUnitBridge] made the bridge act as a polyfill for newest PHPUnit features
- 84d5996: [Ldap] added security LdapUser and provider
- f6ea704: [Security] added support for opportunistic password migrations
- 0c95aad: [PhpUnitBridge] added polyfill for PhpUnit namespace
- e769d52: [Mailer] fixed dispatcher not available in Mailer
- fdaf0e0: [Mailer] added support for the profiler
- 233562f: [Mailer] made the message logger permanent
- 2070e30: [Dotenv] use default value when referenced variable is not set
- 3498259: [HttpClient] added "max_duration" option
- d94c4b4: [Mailer] fixed getName() when transport is null
- 6d181ff: removed deprecated assertContains
- 38ff264: [ErrorRenderer] fixed timestamp on logs view
- e0ccbf6: cleanup remaining param $options and internal Intl FullTransformer
- 29dbbe1: [HttpFoundation] deprecated HeaderBag::get() returning an array and add all($key) instead
- 5ce3a61: [Validator] allow objects implementing __toString() to be used as violation messages
- 865e4d7: [DoctrineBridge] invokable event listeners
- 8c25592: [FrameworkBundle, Routing] private service route loader
- 32b2a52: [Intl] added support for ISO 3166-1 Alpha-3 country codes
- 1ce83da: [Mime] added AbstractPart::asDebugString()
- 37265de: [Mailer] added a name to the transports
- f91fa10: [HttpClient] fix data loss when streaming as a PHP resource
- fd9e512: [HttpKernel] reintroduced __wakeup method in DataCollector
- 66e26a4: [Cache] removed PhpArrayAdapter::throwOnRequiredClass()
- 0776b3a: [Lock] removed deprecated waitAndSave() methods
- 245c521: drop Debug compatibility layers
- 0314c08: [HttpKernel] lower EOL date
Newest issues and pull requests
- [RFC] extended controller/route configuration
- [RFC][ErrorHandler] Add a simple error handler for the userland
- [RFC] Give back control of password hashing algorithm to app developer
- [Security] Introduce firewall names in the Security class
- Sort exported translation keys alphabetically
- [Messenger] TLS/SSL support for Redis Transport
- XLIFF export should contain default locale default texts in source tags
- [Mime] Add NamedAddress::fromString
They talked about us
- Decouple your Symfony application using Domain Events
- Two databases with Symfony 4 & Doctrine 2? Not as straightforward as it might look.
- Authentication with VueJs using Symfony and Api Platform – Part 1
- Authentication with VueJs using Symfony and Api Platform — Part 2
- Creando controladores con anotaciones de symfony en drupal 8
- Cambios en el mantenimiento de las versiones estándar de Symfony
- Deploy Symfony + React приложения на AWS посредством CI
Upcoming Symfony Events
- Die neue Mailer-Komponente: Hamburg, Germany (September 3)
Call to Action
- Give Symfony a star on GitHub
- Follow Symfony on Twitter and retweet this article.
- Subscribe to the Symfony blog RSS and never miss a Symfony story again.