Implemented in PHP 8.5

RFC Categories

    Convert the deprecation to a documentation-based soft deprecation?

    Yes
    No
    Abstain
    Yes
    26 Votes (84%)
    No
    5 Votes (16%)
    Abstain
    0 Votes (0%)

    Warnings for PHP 8.5

    Author
    Target
    8.5
    The RFC proposes to add a few warnings when encountering certain edge cases in PHP 8.5, and promote those to error in PHP 9.

    Warn when coercing NAN to other types?

    Yes
    No
    Yes
    20 Votes (100%)
    No
    0 Votes (0%)

    Warn when casting out of range floats to int?

    Yes
    No
    Yes
    17 Votes (100%)
    No
    0 Votes (0%)

    Warn when destructuring non-array values?

    Yes
    No
    Yes
    16 Votes (100%)
    No
    0 Votes (0%)

    Warn when using offsets on non-container values in isset()/empty()?

    Yes
    No
    Yes
    10 Votes (63%)
    No
    6 Votes (38%)

    Warn when using invalid offset types when checking string offsets with isset()/empty()?

    Yes
    No
    Yes
    10 Votes (63%)
    No
    6 Votes (38%)

    Cookies Having Independent Partitioned State (CHIPS)

    Author
    Dmitrii Derepko
    Target
    8.5
    Modern browsers have several security levels to separate cross-site communications, including various settings to how cookies should behave across the sites. CH...

    Implement CHIPS as outlined in the RFC?

    Yes
    No
    Yes
    25 Votes (100%)
    No
    0 Votes (0%)

    Extend #[\Override] to target properties

    Author
    Jiří Pudil
    Target
    8.5
    This is a follow-up to a previous RFC which introduced the #[\Override] attribute to explicitly express the intent of a method to override a parent method or im...

    Extend #[\Override] to target properties?

    Yes
    No
    Yes
    24 Votes (100%)
    No
    0 Votes (0%)

    #[\Deprecated] for traits

    Author
    Daniel Scherzer
    Target
    8.5
    The #[\Deprecated] attribute was introduced in PHP 8.4 (deprecated_attribute) and could be used to emit deprecation warnings when calling a function (or class m...

    Add support for #[\Deprecated] on traits?

    Yes
    No
    Yes
    20 Votes (100%)
    No
    0 Votes (0%)

    FILTER_THROW_ON_FAILURE

    Author
    Daniel Scherzer
    Target
    8.5
    The filter extension (ext/filter) can be used to verify that values (either given as variables or extracted from various superglobals like $_GET) match specifie...

    Add FILTER_THROW_ON_FAILURE and the associated exception classes?

    Yes
    No
    Yes
    18 Votes (95%)
    No
    1 Votes (5%)

    Add locale for case insensitive grapheme functions

    Author
    Yuya Hamada
    Target
    8.5
    A grapheme functions is not locale dependency. This RFC is add locale parameter for grapheme case insensitive functions. That is more enhancements for Unicode c...

    A grapheme functions add locale and case insensitive

    Yes
    No
    Yes
    7 Votes (100%)
    No
    0 Votes (0%)

    Make OPcache a non-optional part of PHP

    Author
    Author
    Author
    Target
    8.5
    Since OPcaches integration into the Open Source PHP project with PHP 5.5, OPcache has become an essential part of PHP, running PHP in production without OPcache...

    Make OPcache a non-optional part of PHP?

    yes
    no
    yes
    30 Votes (100%)
    no
    0 Votes (0%)

    array_first() and array_last()

    Author
    Target
    8.5
    In PHP 7.3, we got array_key_first() and array_key_last() to get the first and last keys from an array. What we don't have yet is a way to get the first and las...

    Add array_first() and array_last()?

    Yes
    No
    Yes
    35 Votes (100%)
    No
    0 Votes (0%)

    Clone with v2

    Author
    Volker Dusch
    Author
    Target
    8.5
    Both readonly properties and the cloning of objects are commonplace in a lot of PHP applications, but these two concepts dont fully work together in all cases.

    Implement clone-with as outlined in the RFC?

    Yes
    No
    Yes
    16 Votes (80%)
    No
    4 Votes (20%)

    Final Property Promotion

    Author
    Daniel Scherzer
    Target
    8.5
    When property-hooks added property hooks, it also added a mechanism for properties to be declared as final. However, the final modifier is not currently support...

    Allow `final` to be used with property promotion?

    Yes
    No
    Yes
    25 Votes (100%)
    No
    0 Votes (0%)

    Add get_error_handler(), get_exception_handler() functions

    Author
    Target
    8.5
    PHP does not provide a direct way to fetch the currently registered error or exception handlers. Users who need to inspect these handlers must resort to a worka...

    Add get_error_handler(), get_exception_handler() functions?

    Yes
    No
    Yes
    28 Votes (100%)
    No
    0 Votes (0%)

    Pipe operator v3

    Author
    Target
    8.5
    In object-oriented code, composition generally means one object having a reference to another. In functional programming, composition generally means sticking ...

    Add the pipe operator?

    Yes
    No
    Yes
    33 Votes (83%)
    No
    7 Votes (18%)

    Marking return values as important (#[\NoDiscard])

    Author
    Author
    Volker Dusch
    Target
    8.5
    PHPs error handling mechanism of choice in newer APIs is the use of Exceptions, where forgetting to handle the failure case results in a very obvious error, whe...

    Implement the #[\NoDiscard] attribute as described?

    Yes
    No
    Yes
    18 Votes (82%)
    No
    4 Votes (18%)

    Implement the (void) cast to reliably suppress #[\NoDiscard]?

    Yes
    No
    Yes
    18 Votes (90%)
    No
    2 Votes (10%)

    First Class Callables in constant expressions

    Author
    Author
    Volker Dusch
    Target
    8.5
    The Support Closures in constant expressions RFC added support for Closures in constant expressions. The RFC left supporting First Class Callables (FCC), which ...

    Support first class callables in constant expressions as proposed?

    Yes
    No
    Yes
    29 Votes (100%)
    No
    0 Votes (0%)

    Error Backtraces v2

    Author
    Eric Norris
    Target
    8.5
    PHP errors do not provide backtraces, which can make it difficult to ascertain their underlying cause. Enabling backtraces for fatal errors will provide vital i...

    Add a fatal_error_backtraces INI setting as described

    Yes
    No
    Yes
    19 Votes (95%)
    No
    1 Votes (5%)

    Default value for fatal_error_backtraces

    '1'
    '0'
    '1'
    12 Votes (67%)
    '0'
    6 Votes (33%)

    If fatal_error_backtraces defaults to 1, default value in run-tests.php

    '1'
    '0'
    '1'
    4 Votes (27%)
    '0'
    11 Votes (73%)

    Attributes on Constants

    Author
    Daniel Scherzer
    Target
    8.5
    Attributes were first introduced in attributes_v2, with the current syntax adopted shorter_attribute_syntax_change. This RFC would add support for attributes on

    Support attributes on constants

    Yes
    No
    Yes
    26 Votes (100%)
    No
    0 Votes (0%)

    Persistent curl share handle improvement

    Author
    Eric Norris
    Target
    8.5
    The vote for PHP RFC: Add persistent curl share handles passed, but discussion raised after voting brought up the possibility of an improved implementation.

    Accept curl_share_init_persistent(array $share_options): CurlSharePersistentHandle over the previous RFC signature

    Yes
    No
    Yes
    9 Votes (100%)
    No
    0 Votes (0%)

    Disallow CURL_LOCK_DATA_COOKIE in $share_options

    Yes
    No
    Yes
    9 Votes (100%)
    No
    0 Votes (0%)

    Support Closures in constant expressions

    Author
    Author
    Volker Dusch
    Target
    8.5
    Several PHP constructs are limited to accept constant expressions only. These expressions may only contain a limited number of operations that can roughly be su...

    Support Closures in constant expressions as proposed?

    Yes
    No
    Yes
    19 Votes (100%)
    No
    0 Votes (0%)

    Asymmetric Visibility for Static Properties

    Author
    Author
    Target
    8.5
    The Asymmetric Visibility RFC for PHP 8.4 deliberately omitted support for asymmetric visibility on static properties. That was due primarily to the expected i...

    Approve asymmetric visibility for static properties?

    Yes
    No
    Yes
    15 Votes (83%)
    No
    3 Votes (17%)

    Grapheme cluster for levenshtein, grapheme_levenshtein function

    Author
    Yuya Hamada
    Target
    8.5
    I creating mb_levenshtein https://wiki.php.net/rfc/mb_levenshtein. However, there was some discussion that the Levenshtein function for each grapheme cluster mi...

    Add grapheme_levenshtein function

    Yes
    No
    Yes
    12 Votes (100%)
    No
    0 Votes (0%)

    Change Directory class to behave like a resource object

    Author
    Target
    8.5
    The Directory class is probably the first instance of what we now call a resource object (and in its stricter sense an opaque object). Resource/Opaque objects a...

    Accept Change Directory class to behave like a resource object RFC?

    Yes
    No
    Yes
    23 Votes (100%)
    No
    0 Votes (0%)

    Add RFC 3986 and WHATWG URL compliant API

    Author
    Target
    8.5
    URIs and URLs are one of the most fundamental concepts of the web because they make it possible to reference specific resources on a network. URLs were original...

    Add the RFC 3986 and the WHATWG URL compliant API described above?

    yes
    no
    yes
    30 Votes (97%)
    no
    1 Votes (3%)

    #[\DelayedTargetValidation] attribute

    Author
    Daniel Scherzer
    Target
    8.5
    Attributes were first introduced in attributes_v2, with the current syntax adopted in shorter_attribute_syntax_change. Enums were added in enumerations, with en...

    Implement the #[\DelayedTargetValidation] attribute as described?

    Yes
    No
    Yes
    14 Votes (70%)
    No
    6 Votes (30%)