This week, we continued polishing the new features of the upcoming Symfony 6.3, which will be released in just five weeks. We also published the first blog posts of the New in Symfony 6.3 series. Finally, we announced new talks for the SymfonyOnline June 2023 conference.
Symfony development highlights
This week, 77 pull requests were merged (71 in code and 6 in docs) and 37 issues were closed (33 in code and 4 in docs). Excluding merges, 48 authors made 5,503 additions and 2,627 deletions. See details for code and docs.
- 1a5e19b: [Filesystem] avoid leading .. for temporary files from Filesystem recursive remove
- 651b9d6: [Serializer] unexpected value should throw UnexpectedValueException
- 887c7b0: [Form] cast choices value callback result to string
- af5b340: [PropertyAccess] readonly properties must have no PropertyWriteInfo
- bee9131: [HttpFoundation] fix memory limit problems in BinaryFileResponse
- 8b65de5: [Mailer] use body MessageID instead of X-MJ-Request-GUID for Mailjet
- 0c5246f: [Messenger] fix warning message on failed messenger show command
- ba49bda: [Messenger] fixed problem with Redis where worker stops handling messages on first empty message
- 6aacbd9: [VarDumper] make the server TCP connection sync
- 6470cc4: [PhpUnitBridge] fix PHPUnit 10.1 compatibility
- 5ba3046: [Mime] form field values with integer keys not resolved correctly
- 6366ed2: [Messenger] fix deprecation layer of RedeliveryStamp
- 2e66dcc: [Console] fix computing column width containing multibyte chars
- 4d15479: [Process] path resolution changes for PHP in the cgi-fcgi mode
- 1a06b3b: [HttpKernel] add tests for DataCollector
- 831e0ca: [Validator] fix support of Enum to ConstraintValidator::formatValue
- 659000f: [HttpClient] fix global state preventing two CurlHttpClient instances from working together
- d1d7539: [Cache] fix success interpretation when pruning cache
- 638703d: [Cache] send Predis SSL options in the $hosts parameter
- 7589ff6: [Console] fix the list of supported shells for completions in a phar
- 20ee89c: [DependencyInjection] fallback to default value when autowiring undefined parameters for optional arguments
- a79fe36: [DependencyInjection] fix support for inner collections when using
- 5269b70: [Translation] fix locale vs LanguageId in Crowdin Bridge
- b3bfdf9: [VarExporter] fix forwarding references to proxied classes
- e1bcdd5: [Security] make onAuthenticationSuccess Response optional
- 6f77fa0: [DependencyInjection] do not ignore tags name attribute when it does not define their name
- 180eb01: [Console] fix the usage of the zsh completion through the fpath discovery
- 773cb9d: [Routing] convert BackedEnums passed as controller action parameters to their value
- 849831c: [Validator] add value_length parameter to Length constraint
- 0eb0320: [HttpKernel] add #[MapQueryParameter] to map and validate individual query parameters to controller arguments
- 3712d2e: [HttpKernel] don't use eval() to render ESI/SSI
- ff336fa: [Intl] allow compressing emoji and data maps
- 03ca033: [BrowserKit, HttpClient] update the value of some user agents to comply with the RFC 9110 specification
- 6378563: [Form] don't render seconds for HTML5 date pickers unless "with_seconds" is explicitly set
- bfd34b3: [Form] deprecate not configuring the "widget" option of date/time form types
- f709c6e: [Serializer] add types to private and internal properties
- 474239a: [HttpKernel] collect data from every event dispatcher
- 33da4c8: [HttpClient] allow using multiple base_uri as array for retries
- 887c960: [HttpKernel] enhance MapRequestPayload adding format and validation group
- ed2414d: [HttpClient] add JsonMockResponse
- 7bdd344: [Security] added error code to UserPassword constraint
- 3761915: [HttpFoundation] clear IpUtils cache to prevent memory leaks
- e957514: [HttpClient] support file uploads by nesting resource streams in body option
- 6584f1a: [Security] create Controller Argument Resolver for Security Token
- c02173f: [HttpFoundation] add Request::getPayload()
- eece9de: [HttpKernel] enhance MapQueryString adding validation group
- 24b1b02: [Config] improve GlobResource performance
- 805f207: [Lock] add the void return type in Lock interfaces
Newest issues and pull requests
- [Routing] [RFC] Add content-type for Route class
- [VarDumper] Tell us more about uninitialized properties
- [Scheduler] Expose the run date?
- Symfony Expression: Parse without context
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: Security for your Treasures, Chapter 25: User Test + Plain Password
- (Video) API Platform 3: Security for your Treasures, Chapter 26: State Processors: Hashing the User Password
- (Video) API Platform 3: Security for your Treasures, Chapter 27: Validation Groups & Patch Formats
- (Video) API Platform 3: Security for your Treasures, Chapter 28: Dynamic Groups: Context Builder
They talked about us
- Symfony Station Communiqué - 21 April 2023
- Protect your application with Symfony rate limiter component
- Configure Symfony Secrets with HashiCorp Vault
- Hands-On With Drupal 10: Symfony 6.2, the New Tech Stack
- Create a new Discussion with a Message and a Message to an existing Discussion [Api-platform]
- Protéger son application avec le composant Rate Limiter de 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.