On Wed, Aug 13, 2025 at 11:03 AM Nicolas Grekas <
nicolas.grekas+...@gmail.com> wrote:

>
>
> Le ven. 8 août 2025 à 22:10, Gina P. Banyard <intern...@gpb.moe> a écrit :
>
>> On Friday, 25 July 2025 at 13:56, Gina P. Banyard <intern...@gpb.moe>
>> wrote:
>>
>> > Hello internals,
>> >
>> > As Tim announced a few days ago, I've opened the votes for the
>> deprecations:
>> > https://wiki.php.net/rfc/deprecations_php_8_5
>> >
>> > Please remember that the wiki is only capable to handle a single vote
>> at a time,
>> > so please submit each vote you intend on casting individually.
>> >
>>
>> Hello internals,
>>
>> After two weeks of voting, I closed the votes of the "Deprecations for
>> PHP 8.5" RFC at 19:45 UTC.
>>
>> The following proposals have been accepted:
>>
>> - Deprecate semicolon after case in switch statement (22 yay, 10 nay,
>> 68.8%)
>> - Deprecate non-standard cast names (32 yay, 0 nay, 100%)
>> - Deprecate backticks as an alias for shell_exec (21 yay, 8 nay, 72.4%)
>> - Deprecate the __sleep() and __wakeup() magic methods (18 yay, 9 nay,
>> 66.7%)
>> - Deprecate using values null as an array offset and when calling
>> array_key_exists() (25 yay, 3 nay, 89.3%)
>> - Deprecate __debugInfo() returning null (22 yay, 5 nay, 81.5%)
>> - Deprecate constant redeclaration (31 yay, 0 nay, 100%)
>> - Deprecate closure binding issues (29 yay, 0 nay, 100%)
>> - Enact follow-up phase of the "Path to Saner Increment/Decrement
>> operators" RFC (23 yay, 4 nay, 85.2%)
>> - Deprecate the report_memleaks INI directive (23 yay, 2 nay, 92.0%)
>> - Deprecate the register_argc_argv INI directive (27 yay, 0 nay, 100%)
>> - Remove disable_classes INI setting (26 yay, 0 nay, 100%)
>> - Deprecate Reflection*::setAccessible() (24 yay, 0 nay, 100%)
>> - Deprecate ReflectionClass::getConstant() for missing constants (25 yay,
>> 0 nay, 100%)
>> - Deprecate ReflectionProperty::getDefaultValue() for properties without
>> default values (21 yay, 2 nay, 89.5%)
>> - Deprecate ArrayObject and ArrayIterator with objects (26 yay, 0 nay,
>> 100%)
>> - Deprecate SplObjectStorage::contains(), SplObjectStorage::attach(), and
>> SplObjectStorage::detach() (17 yay, 2 nay, 89.5%)
>> - Deprecate passing spl_autoload_call() to spl_autoload_unregister() (23
>> yay, 0 nay, 100%)
>> - Deprecate the $exclude_disabled parameter of get_defined_functions()
>> (23 yay, 0 nay, 100%)
>> - Deprecate passing null to readdir(), rewinddir(), and closedir() (24
>> yay, 3 nay, 88.9%)
>> - Deprecate passing string which are not one byte long to ord() (20 yay,
>> 4 nay, 83.3%)
>> - Deprecate passing integers outside the interval [0, 255] to chr() (21
>> yay, 1 nay, 95.5%)
>> - Formally deprecate socket_set_timeout (22 yay, 0 nay, 100%)
>> - Deprecate the $http_response_header predefined variable (22 yay, 2 nay,
>> 91.7%)
>> - [ODBC] Remove flags for building against specific drivers directly (16
>> yay, 0 nay, 100%)
>> - Remove support for older ODBC versions (15 yay, 0 nay, 100%)
>> - Deprecate PDO's 'uri:' scheme (22 yay, 0 nay, 100%)
>> - Deprecate driver specific PDO constants and methods (17 yay, 6 nay,
>> 73.9%)
>> - Deprecate Pdo\Pgsql constants related to statement transaction state
>> (17 yay, 0 nay, 100%)
>> - Deprecate finfo_close() (24 yay, 2 nay, 92.3%)
>> - Deprecate xml_parser_free() (22 yay, 2 nay, 91.7%)
>> - Deprecate curl_close() (23 yay, 3 nay, 88.5%)
>> - Deprecate curl_share_close() (23 yay, 3 nay, 88.5%)
>> - Deprecate imagedestroy() (23 yay, 2 nay, 92.0%)
>> - Deprecate key_length parameter of openssl_pkey_derive() (24 yay, 0 nay,
>> 100%)
>> - Deprecate intl.error_level INI setting (22 yay, 0 nay, 100%)
>> - Formally deprecate mysqli_execute() (22 yay, 0 nay, 100%)
>> - Deprecate building ext/ldap against Oracle LDAP (19 yay, 0 nay, 100%)
>> - Deprecate the $context parameter for finfo_buffer() (24 yay, 0 nay,
>> 100%)
>> - Deprecate DATE_RFC7231 and DateTimeInterface::RFC7231 (22 yay, 0 nay,
>> 100%)
>>
>> And the following proposals have been rejected:
>>
>> - Deprecate attributes applying to multiple class properties/constants (5
>> yay, 19 nay, 20.8%)
>> - Deprecate ReflectionParameter::allowsNull() (9 yay, 10 nay, 47.4%)
>> - Deprecate non-canonical type names for settype() (8 yay, 10 nay, 44.4%)
>> - Deprecate FILTER_DEFAULT constant (12 yay, 10 nay, 54.5%)
>> - Make $filter parameter mandatory for filter_*() functions (9 yay, 10
>> nay, 47.4%)
>> - Deprecate PDO::ERRMODE_WARNING error mode (8 yay, 12 nay, 40.0%)
>>
>> Thank you to everyone that has voted and participated in the discussions.
>>
>> Best regards,
>>
>> Gina P. Banyard
>>
>
> I’d like to raise some concerns about the decision to deprecate __sleep()
> and __wakeup().
>
> While I understand the intention behind moving toward __serialize() and
> __unserialize(), in practice the migration path is often non-trivial. For
> example, in Symfony’s codebase there are numerous cases where switching
> requires deep knowledge of PHP’s serialization format to maintain
> compatibility with existing payloads. This is essential so that updated
> applications can still communicate with older versions.
>
> For many projects, this will be a significant burden, especially given
> that __sleep() and __wakeup() have historically worked well for these use
> cases. I’m concerned that the practical cost to the community may outweigh
> the benefits, particularly since the rationale for removal seems, at least
> from a user’s perspective, debatable.
>
>
Fully agree and this is exactly what I noted in
https://github.com/php/php-src/pull/19435 . I think this RFC was very poor
in showing the effort that is needed for migration as it was represented
like a trivial thing.

Kind regards

Jakub

Reply via email to