-
-
Couldn't load subscription status.
- Fork 150
Description
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 a null as the first argument.
PHP 8.4 will provide its own mb_trim() implementation which has its first argument typed as string, but which also accepts a null 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 a TypeError.
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 accept nulls too and raise an E_USER_DEPRECATED error if a null is passed.
And the same is probably true for many other functions as well.