-
-
Notifications
You must be signed in to change notification settings - Fork 134
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
Polyfill PHP 8.3 is incomplete #451
Comments
Well, many of those things are not polyfillable. Only new functions and new classes are. New constants are technically polyfillable. But when they are used to enable behavior in existing function, polyfilling the constant without polyfilling the new behavior in the existing function is actually worse because it provides a non-working polyfill (and it breaks feature detection of the actual support). In this list, the only polyfillable things are the new |
What shall we do about those? How would we polyfill a new ini setting?
We could polyfill those constants, but not the logic behind it. In fact, if you used one of the polyfilled constants like they're supposed to be used and passed it to actual ext-curl functions, you'd get an error. So what's the point in polyfilling them?
We cannot polyfill methods/constants of core classes. 🤷🏻♂️ Same issue for all ext-dom and ext-intl classes you've listed.
Those functions leverage functionality of the Postgres client library. I doubt that we can emulate them in userland.
PR welcome! 🙂 |
Closing in favor of #452 |
Hello,
As author of package https://github.com/llaville/php-compatinfo-db that reference all PHP components since a long time now, I've introduced a new branch 6.x that reference PHP 8.3 introductions since alpha1.
TL;DR / just FYI : llaville/php-compatinfo-db#133
In summary here are elements I've found on original source code https://github.com/php/php-src/tree/php-8.3.0RC3/ext, and those what are already implement in this polyfill, and the others !
data/reference/extension/core/83/classes.json:
data/reference/extension/core/83/iniEntries.json:
data/reference/extension/curl/83/constants.json:
data/reference/extension/date/83/classes.json:
data/reference/extension/date/83/methods.json:
data/reference/extension/dom/83/methods.json:
data/reference/extension/intl/83/const.json:
data/reference/extension/intl/83/methods.json:
data/reference/extension/json/83/functions.json:
data/reference/extension/ldap/83/functions.json:
data/reference/extension/mbstring/83/functions.json:
data/reference/extension/opcache/83/iniEntries.json:
data/reference/extension/openssl/83/constants.json:
data/reference/extension/pgsql/83/constants.json:
data/reference/extension/pgsql/83/functions.json:
data/reference/extension/posix/83/constants.json:
data/reference/extension/posix/83/functions.json:
data/reference/extension/reflection/83/methods.json:
data/reference/extension/sockets/83/constants.json:
data/reference/extension/sockets/83/functions.json:
data/reference/extension/sqlite3/83/classes.json:
data/reference/extension/standard/83/functions.json:
The text was updated successfully, but these errors were encountered: