nikic

Nikita Popov

Positivity over time
Created RFCs
Name # of votes # of comments Approval % Version Target Last update Status
Explicit call-site pass-by-reference 0 0 0% 7.3 2017-12-02 Under discussion
Namespace-scoped declares 0 0 0% 7.3 2016-09-20 Inactive
Named Parameters 0 0 0% 09.09.2013 5.6 2013-09-06 Inactive
Deprecations for PHP 7.3 0 0 0% 2017-08-02 In draft
Parser Extension API 0 0 0% 7.x 2015-02-17 Inactive
Deprecations for PHP 7.2 280 0 95.3% 7.2 2015-12-28 Implemented
Forbid dynamic calls to scope introspection functions 40 0 97.5% 7.1 2016-05-01 Implemented
Reclassify E_STRICT notices 32 0 87.5% 7.0 2015-02-22 Implemented
Remove deprecated functionality in PHP 7 500 0 91.4% 7.0 2014-09-11 Implemented
Abstract syntax tree 47 0 100% 7.0 2014-07-28 Implemented
Uniform Variable Syntax 31 0 96.8% 7.0 2014-05-31 Implemented
Remove alternative PHP tags 34 0 76.5% 7.0 2014-09-09 Implemented
Remove hex support in numeric strings 29 0 100% 7.0 2014-08-19 Implemented
Exceptions in the engine (for PHP 7) 120 0 82% 7.0 2014-09-30 Implemented
Syntax for variadic functions 37 0 97.3% 5.6 2013-08-27 Implemented
Argument Unpacking 34 0 94.1% 5.6 2013-08-30 Implemented
Internal operator overloading and GMP improvements 17 0 88.2% 5.6 2013-05-12 Implemented
Generators 25 0 96% 2012-06-05 Implemented
Allow arbitrary expression arguments to empty() and isset() 35 0 83.3% 2012-04-12 Implemented
Remove preg_replace /e modifier 0 0 0% 2012-02-04 Implemented
Allow non-scalar keys in ''foreach'' 21 0 100% 5.5 2013-01-28 Implemented
Exceptions in the engine 46 0 54.3% 5.6 2013-10-23 Declined
Alternative typehinting syntax for accessors 15 0 20% 2013-01-04 Declined
Automatic Property Initialization 18 0 38.9% 5.6 2013-09-27 Declined
Moving to an AST-based parsing/compilation process (obsolete) 0 0 0% 2012-09-04 Declined
Voted RFCs
RFC Question Voted Approval % Correct?
Error message formatting for development Do you want to revert back to html_errors=on by default Yes 100% Yes
Allow arbitrary expression arguments to empty() and isset() Should empty() and isset() accept arbitrary arguments? Yes 85.7% Yes
Allow arbitrary expression arguments to empty() and isset() Which of the language constructs should accept arbitrary arguments? Only empty() 81% Yes
array_part Should the current array_part() implementation be merged No 10.5% Yes
Adding hash_pbkdf2 Function rfc/hash_pbkdf2 Yes 100% Yes
Supports finally keyword Should the implementation be merged into trunk? No 83.3% No
foreach_variable supporting T_LIST Should this RFC(with supporting of silent token) be merged into trunk? No 16.7% Yes
foreach_variable supporting T_LIST Should this RFC be merged into trunk? Yes 73.3% Yes
Generators Should generators be merged into master? Yes 96% Yes
Adding simple password hashing API Should the simplified password hashing API indicated here be included in master? Yes 100% Yes
ext/mysql deprecation Should ext/mysql generate E_DEPRECATED errors in PHP 5.5? No 67.6% No
array_column Accept array_column() for inclusion in PHP? No 86.4% No
Define PHP 5.3 end of life Which EOL period should we choose? Two years with security fixes only, announce with 5.5 final release 100% No
Alternative typehinting syntax for accessors Should the proposed typehinting syntax be used instead of the current one? Yes 20% No
Remove calls with incompatible Context Deprecate calls with incompatible context in 5.5 and disallow them in the version after (be it 5.6 or 6.0) Yes 100% Yes
Integrating Zend Optimizer+ into the PHP distribution rfc/optimizerplus Integrate into 5.5 only if it's not delayed, otherwise - 5.6 100% No
Allow non-scalar keys in ''foreach'' Remove type-restrictions on foreach keys? Yes 100% Yes
Trailing comma function args Should the current optional trailing comma implementation be merged No 42.9% Yes
instance counter Should this RFC be implemented? No 6.7% Yes
Internal operator overloading and GMP improvements Should these changes be applied for PHP 5.6? GMP changes 88.2% Yes
Syntax for variadic functions Should the proposed variadic-function syntax be added in PHP 5.6 (master)? Yes 97.3% Yes
Change crypt() behavior w/o salt Change crypt behavior when salt parameter is omitted. Generate E_NOTICE error 85.7% Yes
Exceptions in the engine Implement in PHP 5.6? Yes 54.3% Yes
phpdbg Distribute phpdbg with PHP5.6+ Yes 100% Yes
Power Operator Should PHP get a power operator in 5.6? No 71.9% No
Argument Unpacking Implement argument unpacking in PHP 5.6? Yes 94.1% Yes
TLS Peer Verification Should PHP verify client peers by default in PHP 5.6? Yes 100% Yes
64 bit platform improvements for string length and integer in zval Merge this RFC into PHP-5.6 having regard to Vote 2 and 3 No 42.9% Yes
64 bit platform improvements for string length and integer in zval Keep zpp specs l, L, s, p as aliases to i, I, S, P Yes 46.9% No
Timing attack safe string comparison function Timing attack safe string comparison function Yes 95.7% Yes
Alternative implementation of mbstring using ICU Include mbstring-ng for PHP-5.6 as EXPERIMENTAL module No 9.1% Yes
__debugInfo() Name ___debugInfo() __debugInfo() 100% Yes
Introduce session_start() options - read_only, unsafe_lock, lazy_write and lazy_destroy Unsafe lock option No 12.5% Yes
Improved TLS Defaults Should the proposed TLS changes be merged for 5.6? Yes 100% Yes
Multibyte Char Handling Add required mb_*() functions to fix vulnerability No 16.7% Yes
Improve HTML escape Add / escape and Make ENT_QUOTES default No 28.6% Yes
64 bit platform improvements for string length and integer in zval Merge strategy Phpng 100% Yes
64 bit platform improvements for string length and integer in zval Accept this RFC for PHP6 (or whatever next major is called) No 54.9% No
Uniform Variable Syntax Implement Uniform Variable Syntax in PHP 6? Yes 96.8% Yes
Catchable "call to a member function of a non-object" Catchable Call to a member function bar() on a non-object Yes 100% Yes
Name of Next Release of PHP Shall the name of PHP NEXT be PHP 6, or PHP 7? PHP 6 100% No
intdiv() Merge the intdiv operator patch into master? No 17.2% Yes
intdiv() If the operator vote fails to achieve a 2/3 majority, should the intdiv() function patch be merged into master? Yes 100% Yes
Move the phpng branch into master Move phpng to master? Yes 95.9% Yes
Abstract syntax tree Use AST implementation in PHP 7? Yes 100% Yes
Make defining multiple default cases in a switch a syntax error switch.default.multiple Yes 100% Yes
Integer Semantics Accept the integer semantics RFC and merge patch into master? Yes 66.7% Yes
Remove alternative PHP tags Remove alternative PHP tags in PHP 7? Yes 76.5% Yes
Null Coalesce Operator Approve Null Coalesce Operator RFC and merge patch into master? Yes 91.2% Yes
Fix list() behavior inconsistency Fix list() behavior inconsistency? Enable string handling in all cases 100% No
loop + or control structure Loop + or control structure in PHP 7 No 26.7% Yes
Filtered unserialize() Approve filtered unserialize() proposal? No 73.9% No
PHP 7.0 timeline php7timeline Yes 94.4% Yes
ZPP Failure on Overflow Accept the ZPP Failure on Overflow RFC and merge into master? Yes 100% Yes
Native TLS Native TLS Yes 100% Yes
Objects as hash keys Should we support using objects as keys as described in this proposal? No 20% Yes
Unicode Codepoint Escape Syntax Accept the Unicode Codepoint Escape Syntax RFC and merge into master? Yes 92% Yes
PHP 5.7 Accept the PHP 5.7 RFC? No 42.4% Yes
Remove deprecated functionality in PHP 7 Remove assignment of new by reference? Yes 83.8% Yes
Remove deprecated functionality in PHP 7 Unbundle the ext/ereg extension? Yes 92.5% Yes
Remove deprecated functionality in PHP 7 Remove dl() in fpm-fcgi SAPI? Yes 100% Yes
Remove deprecated functionality in PHP 7 Remove support for calls from incompatible context? Yes 100% Yes
Remove deprecated functionality in PHP 7 Remove xsl.security_prefs ini directive? Yes 100% Yes
Remove deprecated functionality in PHP 7 Remove listed deprecated functions? Yes 100% Yes
Remove deprecated functionality in PHP 7 Remove (set_)magic_quotes_runtime() functions? Yes 100% Yes
Remove deprecated functionality in PHP 7 Remove $is_dst parameter of the mktime() and gmmktime() functions? Yes 100% Yes
Remove deprecated functionality in PHP 7 Remove PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT driver option? Yes 80% Yes
Remove deprecated functionality in PHP 7 Disallow enabling unsafe curl uploads? Yes 76% Yes
Remove deprecated functionality in PHP 7 Remove preg_replace() eval modifier? Yes 97.1% Yes
Remove deprecated functionality in PHP 7 Remove CN_match and SNI_server_name stream context options? Yes 80% Yes
Remove deprecated functionality in PHP 7 Disallow string category names in setlocale()? Yes 96.4% Yes
Remove deprecated functionality in PHP 7 Remove support for #-style comments in ini files? Yes 87.1% Yes
Remove deprecated functionality in PHP 7 Unbundle the ext/mysql extension? Yes 70% Yes
Remove hex support in numeric strings Remove hex support in numeric strings? Yes 100% Yes
Return Type Declarations Typed Returns Yes 94% Yes
Default constructors Should PHP 7 have default constructor semantics as described in this proposal? No 57.4% No
Replacing current json extension with jsond Should jsond based extension replace the current json extension in PHP 7? Yes 100% Yes
Combined Comparison (Spaceship) Operator Accept the Combined Comparison (Spaceship) Operator RFC and merge patch into master? No 79.6% No
Removal of dead or not yet PHP7 ported SAPIs and extensions Remove ext/mcrypt from the core No 45.5% Yes
Fix "foreach" behavior Fix foreach behavoir? Yes 97.1% Yes
Fix "foreach" behavior Stop using internal array/object pointer in foreach by reference? Yes 97.1% Yes
Scalar Type Hints Type aliases Do not reserve 77% No
Scalar Type Hints Accept the Scalar Type Hints RFC and merge patch into master? Yes 66.3% Yes
Removal of dead or not yet PHP7 ported SAPIs and extensions Remove ext/imap from the core Yes 42.4% No
Skipping optional parameters for functions Should PHP 7 support parameter skipping as described in this RFC? No 38.6% Yes
Group Use Declarations Should Grouped Use Declarations be added to PHP 7 Yes - with a trailing "\" 67.2% Yes
Allow error_handler callback parameters to be passed by reference Allow error_handler callback parameters to be passed by reference No, Allow none of the parameter be a reference parameter 20% Yes
Remove the date.timezone warning Should the warning about a not set date.timezone ini setting be removed in master? Yes 74.4% Yes
Expectations Merge changes into master? Yes, without custom exceptions 97.7% No
Remove PHP 4 Constructors remove_php4_constructors Yes 92.6% Yes
Exceptions in the engine (for PHP 7) Allow exceptions in the engine and conversion of existing fatals? Yes 96.8% Yes
Exceptions in the engine (for PHP 7) Introduce and use BaseException? No 67.2% No
Introduce script only include/require Introduce script inclusion protection? No 14.3% Yes
Scalar Type Declarations Accept Scalar Type Declarations With Optional Strict Mode? Yes 69.2% Yes
Improve array to string conversion array-to-string No 77.3% No
Context Sensitive Lexer Should PHP7 have a context sensitive lexer? No 75% No
Generator Return Expressions Allow Generator return expressions in PHP7 Yes 100% Yes
Coercive Types for Function Arguments coercive_sth No 38% Yes
Reclassify E_STRICT notices Reclassify E_STRICT notices as described in this RFC? Yes 87.5% Yes
Reserve Even More Types in PHP 7 Reserved Type: resource No 69% No
Reserve Even More Types in PHP 7 Reserved Type: object No 81.8% No
Reserve Even More Types in PHP 7 Reserved Type: scalar No 64.2% No
Reserve More Types in PHP 7 reserve_more_types_in_php_7 Yes 95.2% Yes
Reserve Even More Types in PHP 7 Reserved Type: numeric Yes 78.6% Yes
Constructor behaviour of internal classes Constructor behaviour of internal classes Yes 97% Yes
Reserve Even More Types in PHP 7 Reserved Type: mixed Yes 73.2% Yes
Easy User-land CSPRNG Reliable user-land CSPRNG Yes 100% Yes
Generator Delegation Allow Generator delegation in PHP7 Yes 100% Yes
Throwable Interface Throwable Interface Yes 100% Yes
Random Functions Throwing Exceptions in PHP 7 Should this RFC be accepted for 7.0 Yes 93.3% Yes
Void Return Type Accept the Void Return Type RFC for PHP 7.1 and merge patch into master? Yes 84.1% Yes
PHP 5 Support Timeline Extend the support timeline of PHP 5? Yes 95.5% Yes
PHP 5 Support Timeline Extend the support timeline to: 1 year Active Support 2 years Security Support 100% Yes
Deprecate mb_ereg_replace eval option Deprecate mb_ereg_replace eval option Yes 100% Yes
Generalize support of negative string offsets Generalize support of negative string offsets Yes 100% Yes
Deprecate (then Remove) Mcrypt Deprecate then Remove Mcrypt from the PHP Core? Yes 79.3% Yes
Warn about invalid strings in arithmetic Accept the Warn about invalid strings in arithmetic v1.1 RFC for PHP 7.1? Yes 96.7% Yes
Precise Session Management Precise Session Data Management No 57.7% No
"var" Deprecation Deprecate `var` in 7.1 and remove it from 8.0? Yes 57.4% Yes
Square bracket syntax for array destructuring assignment Accept the RFC Square bracket syntax for array destructuring assignment for PHP 7.1? Yes 100% Yes
Fix overflow in octal parsing Raise warning on octal interpolation overflow? Yes 97.4% Yes
Nullable Types Accept explicitly nullable types? (2/3 affirmative required) Yes 95.3% Yes
Nullable Types Merge which features? (majority wins) Both nullable parameter and return types 100% Yes
Functional Interfaces Accept functional interfaces? (2/3+1 majority required) No 24.1% Yes
Forbid dynamic calls to scope introspection functions Forbid dynamic calls to scope introspection functions? Yes 97.5% Yes
Closure from callable function Accept Closure from Callble? (50%+1 majority required) Yes 100% Yes
Callable Prototypes Accept callable prototypes? No 48.6% Yes
Replace "Missing argument" warning with "Too few arguments" exception Replace Yes 78% Yes
Fix inconsistent behavior of $this variable Fix inconsistent behavior of $this variable? Yes 100% Yes
Typed Properties Merge typed properties ? Yes 59.6% Yes
Union Types Include true/false types No 17.9% Yes
More precise float value handling Should mode 0 be introduced and set as default for PG(serialize_precision) Yes 100% Yes
More precise float value handling Should PG(serialize_precision) be used instead of EG(precision) in json_encode Yes 100% Yes
ReflectionType Improvements Accept ReflectionType Improvements RFC? No 38.5% Yes
Iterable Add iterable type to PHP 7.1 Yes 94.6% Yes
RNG fixes and changes Make array_rand() more efficient Yes 100% Yes
RNG fixes and changes Fix mt_rand() implementation Yes 79.2% Yes
RNG fixes and changes Alias rand() to mt_rand() Yes 84% Yes
RNG fixes and changes Fix RAND_RANGE() Yes 100% Yes
RNG fixes and changes Replace insecure uses of php_rand() with php_random_bytes() Yes 100% Yes
New operator (short tag) for context-dependent escaping Add new operator (short tag) for context-dependent escaping to next PHP 7.x? No 0% Yes
New operator (short tag) for context-dependent escaping Is the comma suitable as a separation sign? No 76.9% No
Add validation functions to filter module Add validation functions to filter module No 6.7% Yes
Argon2 Password Hash argon2_password_hash_revote Yes 100% Yes
Add PHP Engine Identifier Constant Add PHP_(*_)ENGINE(_ID) constants No 17.6% Yes
Add PHP Engine Identifier Constant Add PHP_ENGINE constant No 47.1% Yes
Counting of non-countable objects Counting of non-countable objects Yes 100% Yes
Convert numeric keys in object/array casts Accept the Convert numeric keys in object/array casts RFC for PHP 7.2? Yes 95.5% Yes
User defined session serializer Add user defined session serializer No 47.4% Yes
Debugging PDO Prepared Statement Emulation v2 Debugging PDO Prepared Statement Emulation v2 Yes 87.5% Yes
Parameter Type Widening Parameter Type Widening Yes 82.8% Yes
Deprecations for PHP 7.2 Deprecate and subsequently remove __autoload Yes 97.1% Yes
Deprecations for PHP 7.2 Deprecate and subsequently remove $php_errormsg Yes 100% Yes
Deprecations for PHP 7.2 Deprecate and subsequently remove create_function() Yes 100% Yes
Deprecations for PHP 7.2 Deprecate and subsequently remove mbstring.func_overload Yes 100% Yes
Deprecations for PHP 7.2 Deprecate and subsequently remove (unset) cast Yes 96.6% Yes
Deprecations for PHP 7.2 Deprecate and subsequently remove assert() with string argument Yes 96.2% Yes
Deprecations for PHP 7.2 Deprecate and subsequently remove each() Yes 75% Yes
Deprecations for PHP 7.2 Deprecate and subsequently remove gmp_random() Yes 100% Yes
Deprecations for PHP 7.2 Deprecate and subsequently remove parse_str() without second argument Yes 100% Yes
Deprecations for PHP 7.2 Deprecate and subsequently remove $errcontext argument of error handler Yes 88% Yes
Throwable error code's type generalization Accept Throwables error code generalization? Yes 54.2% Yes
Migration Hash Context from Resource to Object Merge one or both diffs Frozen 100% Yes
Migration Hash Context from Resource to Object Change HashContext to an object Yes 100% Yes
Trailing Commas In List Syntax Allow trailing commas in function/method arguments (declarations and calls) Yes 54.5% Yes
Trailing Commas In List Syntax Allow trailing commas in grouped namepaces Yes 76.9% Yes
Trailing Commas In List Syntax Allow trailing commas in use lists for anonymous functions Yes 42.1% No
Trailing Commas In List Syntax Allow trailing commas in trait implementations on a class No 19.4% Yes
Trailing Commas In List Syntax Allow trailing commas in interface implementations on a class No 21.6% Yes
Trailing Commas In List Syntax Allow trailing commas in class member lists No 19.4% Yes
Deprecate and remove INTL_IDNA_VARIANT_2003 Deprecate and remove INTL_IDNA_VARIANT_2003 Yes 100% Yes
Binary String Deprecation Binary String Deprecation Yes 59.4% Yes
Make Libsodium a Core Extension Use the current PECL syntax? Yes, \Sodium\foo 100% No
Make Libsodium a Core Extension Libsodium as a Core Extension in PHP 7.2 Yes 100% Yes
Deprecate and Remove Bareword (Unquoted) Strings Raise severity of undefined constants to E_WARNING in 7.2, and Error in 8.0? Yes 100% Yes
Improve hash_hkdf() parameter order and handling Fix hash_hkdf() signature and behavior No 6.7% Yes
Object typehint Accepting the object typehint RFC for PHP 7.2? Yes 91.4% Yes
Object typehint Object type should implement variance? No 33.3% Yes
Improved SSL / TLS constants Improved SSL / TLS constants Yes 100% Yes
Unary null coalescing operator Accept and merge unary null coalescing operator for PHP 7.2? No 25% Yes
Allow a trailing comma in function calls Allow a trailing comma in function calls Yes 75% Yes
PCRE2 migration PCRE2 migration Yes 100% Yes
Flexible Heredoc and Nowdoc Syntaxes Remove the trailing new line requirement from the closing marker? Yes 76.5% Yes
Flexible Heredoc and Nowdoc Syntaxes Allow for the closing marker to be indented and for the leading whitespace to be stripped? Yes 82.8% Yes
Arrays starting with a negative index Deprecation notice for 7.3 No 36.4% Yes
Arrays starting with a negative index Arrays starting with a negative index for 8.0 Yes 89.5% Yes