-
-
Notifications
You must be signed in to change notification settings - Fork 139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Concerns about passing null to some polyfill arguments #506
Comments
I'd rather not deviate the polyfill from the actual function signature TBH. Would it not be easier to add a - mb_trim($value);
+ mb_trim((string) $value); |
yes. if course. That's (more or less) what I have done. But still. It feels incorrect for a polyfill to not actually polyfill the function it's supposed to polyfill but to be more opinionated about its arguments. Think from a user's perspective. Even with all the semver rules in place, updating from 1.30 to 1.31 (or in my case updating a patch release of a dependency) caused a |
I'm not sure this is a duplicate of #499. This is about throwing a |
Accepting |
For years our code-base (like presumably many others) had an existing
mb_trim()
polyfill of our own and as it pre-dates even php 7, it had a slight quirk in that it accepted anull
as the first argument.PHP 8.4 will provide its own
mb_trim()
implementation which has its first argument typed asstring
, but which also accepts anull
argument, albeit with a deprecation warning.The symfony polyfill on the other hand does not accept a null argument and thus, it being an userland function will throw a
TypeError
instead.In the case of our code-base, this caused an issue where a completely non-related
composer update
now turned code which run perfectly well (and would have changed to raising a deprecation notice in 8.4) into aTypeError
.I know that this is probably a slight edge-case, but I'm still coming here to raise the issue because it might affect other users.
IMHO, to be a proper polyfill for PHP 8.4
mb_trim
, your implementation should acceptnull
s too and raise an E_USER_DEPRECATED error if anull
is passed.And the same is probably true for many other functions as well.
The text was updated successfully, but these errors were encountered: