[PR #11260] Throw if a variadic parameter contains unexpected named arguments #12886

Open
opened 2026-01-22 16:15:30 +01:00 by admin · 0 comments
Owner

Original Pull Request: https://github.com/doctrine/orm/pull/11260

State: closed
Merged: Yes


Fixes #11253.

If a method signature has a variadic parameter, you can call that method with any arbitrary named argument that you want. Hooray. However, our codebase rarely expects that and doing so sometimes raises error messages about invalid array access and similar issues.

This practice could also hide typos in named argument calls.

In order to improve the DX on those methods, I'd like to guard the calls to those methods by introducing a trait that validates if a variadic parameter contains any named arguments. If it finds any, an exception is raised that reports those arguments.

I've started with the QueryBuilder class, but I could extend this change to other classes if we agree that this is what we want.

**Original Pull Request:** https://github.com/doctrine/orm/pull/11260 **State:** closed **Merged:** Yes --- Fixes #11253. If a method signature has a variadic parameter, you can call that method with any arbitrary named argument that you want. Hooray. However, our codebase rarely expects that and doing so sometimes raises error messages about invalid array access and similar issues. This practice could also hide typos in named argument calls. In order to improve the DX on those methods, I'd like to guard the calls to those methods by introducing a trait that validates if a variadic parameter contains any named arguments. If it finds any, an exception is raised that reports those arguments. I've started with the `QueryBuilder` class, but I could extend this change to other classes if we agree that this is what we want.
admin added the pull-request label 2026-01-22 16:15:30 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#12886