Implemented in PHP 8.2

RFC Categories

    Constants in Traits

    Author
    Shinji
    Author
    Stephen
    Target
    8.2
    Traits [1] are used for horizontal code reuse across classes, and currently allow the definition of methods and properties, but not constants. This means that i...

    Allow constants in traits as proposed?

    Yes
    No
    Yes
    28 Votes (70%)
    No
    12 Votes (30%)

    Make the iterator_*() family accept all iterables

    Author
    Tim Düsterhus
    Target
    8.2
    PHP's iterator_*() family currently only accept \Traversables (i.e. they reject plain arrays). This is unnecessarily limiting.

    iterator_to_array: Change the type of iterator_to_array()’s $iterator parameter from \Traversable to iterable?

    Yes
    No
    Yes
    17 Votes (89%)
    No
    2 Votes (11%)

    iterator_count: Change the type of iterator_count()’s $iterator parameter from \Traversable to iterable?

    Yes
    No
    Yes
    17 Votes (89%)
    No
    2 Votes (11%)

    Random Extension Improvement

    Author
    Go Kudo
    Target
    8.2
    Several issues with the "Random Extension 5.x" RFC were only raised after voting started (due to lack of proper discussion):

    Make all implemented engines final?

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

    Remove the SerializableEngine interface?

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

    Remove the CombinedLCG class?

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

    Add the pickArrayKeys() method to the Randomizer?

    Yes
    No
    Yes
    12 Votes (86%)
    No
    2 Votes (14%)

    Rename Randomizer::shuffleString() to Randomizer::shuffleBytes()?

    Yes
    No
    Yes
    16 Votes (94%)
    No
    1 Votes (6%)

    Rename PCG64 and MersenneTwister?

    Yes
    No
    Yes
    14 Votes (93%)
    No
    1 Votes (7%)

    Add the Xoshiro256StarStar engine and class?

    Yes
    No
    Yes
    13 Votes (93%)
    No
    1 Votes (7%)

    Fetch properties of enums in const expressions

    Author
    Target
    8.2
    This RFC proposes to allow the use of ->/?-> to fetch properties of enums in constant expressions. The primary motivation for this change is to allow fetching t...

    Add support for fetching properties of enums in constant expressions?

    Yes
    No
    Yes
    24 Votes (69%)
    No
    11 Votes (31%)

    Expand deprecation notice scope for partially supported callables

    Author
    Juliette Reinders Folmer
    Target
    8.2
    This is a follow-up RFC to the previously accepted Deprecated partially supported callables RFC and proposes to add deprecation notices when passing a partially...

    Throw a deprecation notice when is_callable() receives one of the deprecated partially supported callables ?

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

    Throw a deprecation notice when type verification on the callable type detects one of the deprecated partially supported callables ?

    Yes
    No
    Yes
    25 Votes (96%)
    No
    1 Votes (4%)

    Deprecate and Remove utf8_encode and utf8_decode

    Author
    Rowan Tommins
    Target
    8.2
    The built-in functions utf8_encode and utf8_decode convert strings encoded in ISO-8859-1 (Latin 1) to and from UTF-8, respectively. While this is sometimes a us...

    Should utf8_encode and utf8_decode be deprecated in 8.2 and removed in 9.0?

    Yes
    No
    Yes
    33 Votes (94%)
    No
    2 Votes (6%)

    Random Extension 5.x

    Author
    Go Kudo
    Target
    8.2
    There are several problems with the current implementation of PHP's random functionality, so some proposed improvements.

    Add Random extension

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

    Allow null and false as stand-alone types

    Author
    Target
    8.2
    null corresponds to PHP's unit type, i.e. the type which holds a single value. false is a literal type of type bool.

    Accept Allow null and false as stand-alone types RFC?

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

    Redacting parameters in back traces

    Author
    Tim Düsterhus
    Target
    8.2
    PHP's stack traces in exceptions are very useful for debugging, because they include the original parameters for each stack frame, allowing the developer to see...

    Redacting parameters in back traces

    Yes
    No
    Yes
    24 Votes (96%)
    No
    1 Votes (4%)

    Remove support for libmysql from mysqli

    Author
    Target
    8.2
    There are plenty of differences between the two drivers. Removing support for libmysql would allow PHP to simplify the code and unit tests. Advantages of mysqln...

    Remove support for libmysql from mysqli

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

    Deprecate partially supported callables

    Author
    Target
    8.2
    This RFC proposes to deprecate callables that are supported by call_user_func($callable), but not by $callable().

    Deprecate partially supported callables?

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

    Deprecate dynamic properties

    Author
    Target
    8.2
    When writing to a property that has not been declared, PHP will silently create a dynamic property instead. In modern code, this is rarely done intentionally. T...

    Deprecate dynamic property creation with #[AllowDynamicProperties] opt-in?

    Yes
    No
    Yes
    52 Votes (68%)
    No
    25 Votes (32%)

    Deprecate ${} string interpolation in PHP 8.2 and remove them in PHP 9.0?

    Yes
    No
    Yes
    31 Votes (97%)
    No
    1 Votes (3%)