rfc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rfc [2013/03/31 04:57]
stas [Under Discussion]
rfc [2014/04/15 01:59] (current)
daverandom
Line 1: Line 1:
-===== Request for Comments =====+====== Request for Comments ​======
 This page gives an overview of the current RFCs for PHP. This page gives an overview of the current RFCs for PHP.
  
-To create a new RFC, see [[rfc:​howto|How To Create an RFC]]+To create a new RFC, see [[rfc:​howto|How To Create an RFC]].
  
 Note: An RFC is effectively "​owned"​ by the person that created it. If you want to make changes, get permission from the creator. If no agreement can be found, the only course of action is to create a competing RFC. In this case the old RFC page should be modified to become an intermediate page that points to all the competing RFC's. Note: An RFC is effectively "​owned"​ by the person that created it. If you want to make changes, get permission from the creator. If no agreement can be found, the only course of action is to create a competing RFC. In this case the old RFC page should be modified to become an intermediate page that points to all the competing RFC's.
  
 A new page in this RFC namespace will automatically be loaded with an RFC [[rfc:​template|template]]. Customize as needed. A new page in this RFC namespace will automatically be loaded with an RFC [[rfc:​template|template]]. Customize as needed.
 +
 ===== In voting phase ===== ===== In voting phase =====
 +
 +  * [[rfc:​session-read_only-lazy_write|Sessions:​ Improve original RFC about lazy_write]]\\ An attempt at redesigning the accepted solution from [[rfc:​session-lock-ini]]. (Created 2014/03/14)
  
 ===== Under Discussion ===== ===== Under Discussion =====
Line 13: Line 16:
 This section is for RFCs that have been announced on the PHP "​internals"​ mail list. This section is for RFCs that have been announced on the PHP "​internals"​ mail list.
  
-  * [[rfc:secure_unserialize|security improvement for unserialize()]]\\ Add option to ignore all or some objects to unserialize() +  * [[rfc:secure-session-options-by-default|Secure Session Options]]\\ This RFC proposes secure options for session module as default ​(Vote period: ​ 2014/02/14 - 2014/02/21(Created2014/02/01
-  * [[rfc:unset_bool|unset(): return bool if the variable has existed]]\\ Add to unset a return value if the deletion was successful ​ +  * [[rfc:unified-crypto-source|Unify crypto source INI setting]]\\ This RFC proposes unified crypto source settings(Created 2014/02/13) 
-  * [[rfc:site_voting_poll|Integrate voting polls in PHP.net]]\\ This RFC talks about integration of voting polls into PHP.net +  * [[rfc:nophptags|Make PHP open tag optional ​for better security]]\\ This RFC proposes ​option (php.ini and CLI opts) for removing ​PHP tags  (<?​php ​and so forth) from PHP scripts.(Vote period2014/02/16 - 2014/02/22) (Created 2012/04/12
-  * [[rfc:datetime_tostring|Add toString to DateTime]]\\ A proposal to add toString to DateTime +  * [[rfc:build-openssl-by-default|Build OpenSSL module by default]]\\ This RFC proposes building openssl module ​by default
-  * [[rfc:​useas|Allow use T_AS in closure use statement]]\\ Allow user use a alias name for lexical variable of closure +  * [[rfc:moduleapi-inspection|Module ​API introspection]]\\ Developer/​Operations command-line ​API for checking module versions (Created ​ 2014/01/24) 
-  * [[rfc:​phpp|New File Type for Pure-Code PHP Scripts]]\\ This RFC proposes ​the creation of a new .phpp file type for scripts that contain only PHP code without a <?​php ​or ?> tag. +  * [[rfc:gmp-floating-point|Add support for GMP floating point numbers]]\\ Separate out floating point change from [[rfc:gmp_number|gmp_number]] (Created 2014/01/04) 
-  * [[rfc:enhanced_error_handling|Enhanced Error Handling]]\\ This offers a concept and implementation to let the user (php coderchoose between php_error, exception et al while retaining backwards compatibility +  * [[rfc:normalize_inc_dec|Normalizing increment and decrement operators]]\\ This RFC proposes ​to make ++ and -- operators ​to work more intuitively(Created 2013-12-19) 
-  * [[rfc:​typechecking|Parameter ​(and Return) value type hints/checks]]\\ Several RFC that propose to complete the actual parameter type hints/checks (and an implementation for return value type hints). +  * [[rfc:expectations|Expectations]]\\ This RFC proposes ​adding ​modern Expectation/Assertion API(Created 2013/11/01) 
-  * [[rfc:tls|Native TLS in ZTS]]\\ Improving performance of ZTS builds ​by using native thread local storage+  * [[rfc:session_regenerate_id|Secure session_regenerate_id()]]\\ Make session_regenerate_id() more secure(Created 2013/10/29 ) 
-  * [[rfc:better_benchmarks|Better benchmarks for PHP]]\\ A proposal for replacing current bench.php benchmarking script. +  * [[rfc:list_reference_assignment|list() Reference Assignment]]\\ This RFC proposes a new syntax ​to enable reference assignment with list()(Created 2013/10/25) 
-  * [[rfc:​remove_zend_api|Remove reliance of Zend API]]\\ ​A proposal to remove the use of the Zend API in PHP libraries. +  * [[rfc:named_params|Named Parameters]]\\ This RFC proposes ​introducing named parameters(Created 2013/09/06) 
-  * [[rfc:​php_native_interface|PHP Native Interface]]\\ Provide complete alternative to writing libraries interfaces using the Zend API libraries. +  * [[rfc:internal_serialize_api|Internal Serialize API]]\\ This RFC proposes API for internal generating of serialization(Created 2013/07/27) 
-  * [[rfc:altmbstring|Alternative mbstring implementation using ICU]]\\ A proposal to completely rewrite mbstring extension with ICU. +  * [[rfc:secure_unserialize|security ​improvement for unserialize()]]\\ Add option to ignore all or some objects to unserialize() (Created 2013/03/30) 
-  * [[rfc:fcallfcall|Function call chaining]]\\ Function call chaining implementation. +  * [[rfc:unset_bool|unset(): return bool if the variable has existed]]\\ Add to unset return value if the deletion was successful (Created 2013/03/06) 
-  * [[rfc:errors_as_exceptions|Errors as Exceptions]]\\ This RFC discusses the conversion of errors ​to exceptions  +  * [[rfc:site_voting_poll|Integrate voting polls in PHP.net]]\\ This RFC talks about integration of voting polls into PHP.net (Created 2013/02/23
-  * [[rfc:​enum|Enum language structure]]\\ A proposal to add the enum language structure +  * [[rfc:​skipparams|Skipping optional parameters]] \\ Skipping optional parameters in function calls (Created 2012/04/13
-  * [[rfc:​instance-method-call|Instantiating a class and calling methods/​accessing properties on same command]]\\ A proposal ​to add support to instantiating a class and calling its methods or accessing its properties on same command. +  * [[rfc:​escaper|Escaping RFC for PHP Core]]\\ Implementing a core anti-XSS escaping class and possibly functions for the more procedurally inclined programmers. ​(Created 2012/09/18) 
-  * [[rfc:​optional-t-function|Make T_FUNCTION in method declarations optional.]]\\ A proposal for removing the requirement to use T_FUNCTION in method declarations. +  * [[rfc:​ast_based_parsing_compilation_process|Moving to an AST-based parsing/​compilation process]]\\ Proposes to improve the current parsing/​compilation process by introducing an AST as an intermediary structure ​(Created 2012/​09/​04) 
-  * [[rfc:propertygetsetsyntax-as-implemented|Property get/set syntax]]\\ This RFC proposes ​to add C# style property get/set syntax to PHP classes+  * [[rfc:​travis_ci|Keeping the tests green]] \\ This RFC proposes a policy for keeping PHP CI tests green. ​
-  * [[rfc:traitsmodifications|Proposed modifications to traits]]\\ This RFC proposes three modifications to traits: increasing separation and consistency of inheritance vs. trait composition,​ adding trait-local scope, and extending ''​use''​ syntax+
-  * [[rfc:cli-strict|CLI options for strict and quiet modes]]\\ This RFC proposes a ''​-W''​ option ​to turn on maximum error reporting, and a ''​-Q''​ option for no error reporting+
-  * [[rfc:logicalshiftoperator|Add Logical Shift Operators]]\\ Add logical shift operators for bitwise shifting of strings +
-  * [[rfc:​grisu3-strtod|Faster strtod algorithm]]\\ This RFC proposes ​to add the Grisu3 strtod algorithm as an optional feature to PHP+
-  * [[rfc:autofunc|Function autoloading through spl_autoload*]]\\ This RFC introduces a potential implementation ​for function autoloading which would be consistent with what we have for autoloading classes+
-  * [[rfc:prototype_checks|Clarifying/​Improving the prototype checks]]\\ This RFC discusses the current state of prototype checks, and gives some directions for discussion and improvement+
-  * [[rfc:​jenkins|Introducting Jenkins]]\\ This RFC proposes using Jenkins as a Continuous Ingtegration environment ​for the php project. +
-  * [[rfc:​strict_sessions|Strict Sessions]]\\ This RFC proposes an additional security measure for preventing session fixation. +
-  * [[rfc:strncmpnegativelen|strn(case)cmp supporting a negative length as its third paramter]]\\ This extends PHP's string function strn(case)cmp ​to support ​negative length as parameter +
-  * [[rfc:nophptags|Make PHP open tag optional for better security]]\\ This RFC proposes option (php.ini and CLI opts) for removing PHP tags  ​(<?php and so forthfrom PHP scripts. +
-  * [[rfc:​skipparams|Skipping optional parameters]] \\ Skipping optional parameters in function calls +
-  * [[rfc:​array_delete|array_delete]]\\ This RFC proposes adding array_delete() as an intuitive API for array element deletion. +
-  * [[rfc:​default_encoding|Default character encoding]]\\ Default character encoding handling in PHP. +
-  * [[rfc:​escaper|Escaping RFC for PHP Core]]\\ Implementing a core anti-XSS escaping class and possibly functions for the more procedurally inclined programmers. +
-  * [[rfc:​socketactivation|Systemd socket activation]]\\ Systemd socket activation support for PHP-FPM +
-  * [[rfc:​deprecated-modifier|Add a deprecated modifier for functions]]\\ Add a deprecated modifier for functions +
-  * [[rfc:​ast_based_parsing_compilation_process|Moving to an AST-based parsing/​compilation process]]\\ Proposes to improve the current parsing/​compilation process by introducing an AST as an intermediary structure+
  
 ===== In Draft ===== ===== In Draft =====
- 
 This section is for early drafts of RFCs that have NOT been announced on the PHP "​internals"​ mail list. This section is for early drafts of RFCs that have NOT been announced on the PHP "​internals"​ mail list.
  
-  * [[rfc:object_cast_to_types|Scalar Type Casting Magic Methods]]\\ This RFC proposes a set of new scalar type casting ​magic methods for classes. +  * [[rfc:string-bitwise-shifts|Normalize string bitwise shifts]]\\ Bitwise shifts to operate on string bytes instead ​of casting to integer
-  * [[rfc:​pdov1|PDO Version 1 Improvements]]\\ This RFC proposes a set of improvements to be made to PDO+  * [[rfc:returntypehinting|Type-hinting for return values]]\\ Adds optional type-hinting ​for return values
-  * [[rfc:extensionsiberia|Siberia]]\\ This RFC proposes to create a cemetery ​for dead extensions (PECL or core)+  * [[rfc:session-gc|Adopt GC best practice]]\\ Session is center ​of web securityHowevercurrent session GC cannot be called best practice. Adopt GC best practice
-  * [[rfc:taint|Tainted variables]]\\ This RFC proposes an implementation ​of variable tainting in PHP. +  * [[rfc:deprecate-ini-functions|Deprecate function that modify INI]]\\ There are number of functions that modify INI valueLet them deprecate and use ini_get()/ini_set(). 
-  * [[rfc:​lemon|Lemon as a language parser]]\\ This RFC discusses the switch from YACC/Bison to lemon for the main language parser +  * [[rfc:size_t_and_int64_next|64 bit platform improvements for string ​length and integer]]\\ Integer and String modifications for full 64 bit support 
-  * [[rfc:​static-classes|Static classes]]\\ This RFC proposes the introduction of static classes for PHP +  * [[rfc:removal_of_dead_sapisRemoval ​of dead SAPIs]]\\ Consideration about the unsupported SAPIs removal. 
-  * [[rfc:​peclversioning|PECL versioning]]\\ This RFCabout tackling the versioning issues in PECL extensions, has been implemented across PECL for several monthsBut what should be done about extension versioning in the PHP core? +  * [[rfc:consistent-names|Consistent names for legacy functions/​classes]]\\ This RFC proposes to use alias to provide both legacy and consistent names
-  * [[rfc:protectedlookup|Improve consistency of protected member lookups]]\\ This RFC proposes to eliminate an inconsistency in the way protected class members ​are resolved. +  * [[rfc:inconsistent-behaviors|Inconsistent behaviors]]\\ This RFC is to discuss/​document inconsistent behaviors
-  * [[rfc:​class_casting_to_scalar|class casting to scalar]]\\ This RFC proposes a way to do like __toString(), for other scalar types +
-  * [[rfc:​jsonable|Jsonable interface]]\\ Feature request to allow support json_(encode|decodeto handle Object instance conversions+
-  * [[rfc:drop_sql.safe_mode|Drop sql.safe_mode]]\\ Dropping a php.ini setting affecting two extensions +
-  * [[rfc:​get-random|Get Random]]\\ This RFC talks about how to get a (better) random ​string ​in PHP +
-  * [[rfc:​autoboxing|Autoboxing]]\\ Autoboxing feature in PHP +
-  * [[rfc:error-optimizations|Error optimizations]]\\ A way to optimize the formatting ​of our errors +
-  * [[rfc:​docblockparser|docBlock Parser]]\\ Proposal to add docBlock parsing to the Reflection extension +
-  * [[rfc:autodefine|Autodefinition]]\\ This RFC proposes ​the ability ​to define missing definitions (generalization of autoload)+
-  * [[rfc:annotations-in-docblock|Annotations in doc block]]\\ Class Metadata feature (aka Annotations) support in PHP through DocBlock +
-  * [[rfc:​objectarrayliterals|Object and Array Literals]]\\ This RFC proposes first-class,​ inline object and array literals similar ​to JSON. +
-  * [[rfc:​weakreferences|Weak References]]\\ This RFC proposes the introduction of Weak References in PHP via a new SPL class. +
-  * [[rfc:​linecontrol|Line Markers in PHP]]\\ This RFC proposes the introduction of line markers in PHP. +
-  * [[rfc:​voting_who|Who can vote?]]\\ Define the participants of the voting process. +
-  * [[rfc:​autoloader_error_handling|Autoloader Error Handling]]\\ Request for Comments: Autoloader Error Handling+
   * [[rfc:​csrandombytes|Platform and extension-independent API to the system CSPRNG]]\\ Request for Comments: Platform and extension-independent API to the system CSPRNG. ​   * [[rfc:​csrandombytes|Platform and extension-independent API to the system CSPRNG]]\\ Request for Comments: Platform and extension-independent API to the system CSPRNG. ​
-  * [[rfc:​namedparameters|Named Parameters]] \\ This RFC is for allowing function and method parameters to be named 
   * [[rfc:​loop_else|Loop+Else control structure]] \\ This RFC proposes an optional “else” clause that can be used after while, for, and foreach loops.   * [[rfc:​loop_else|Loop+Else control structure]] \\ This RFC proposes an optional “else” clause that can be used after while, for, and foreach loops.
-  * [[rfc:​scalar_type_hinting_with_cast|Add scalar type hinting with casts]]\\ This RFC proposes adding scalar type hinting with casting to provide more robust parameter hinting. +
-  * [[rfc:​ldap_modify_batch|LDAP:​ Add ldap_modify_batch]] \\ This RFC proposes adding a lower-level modification function to the LDAP extension.+
 ===== Accepted ===== ===== Accepted =====
  
-  * [[rfc:incompat_ctx|Remove calls from incompatible context]]\\ Deprecate in 5.5 and remove in the version after the "calls from incompatible context"​ feature.+  * [[rfc:voting_who|Who can vote?]]\\ Define ​the participants of the voting process.
   * [[rfc:​php53eol|Define PHP 5.3 end of life]]\\ The purpose of this RFC is to define when the PHP 5.3 series will no longer be supported.   * [[rfc:​php53eol|Define PHP 5.3 end of life]]\\ The purpose of this RFC is to define when the PHP 5.3 series will no longer be supported.
   * [[rfc:​apxs-loadmodule|APXS LoadModule]]\\ This RFC proposes the addition of an option to the configure script that allows the user to specify whether the main Apache .conf file should be appended with the LoadModule entry.   * [[rfc:​apxs-loadmodule|APXS LoadModule]]\\ This RFC proposes the addition of an option to the configure script that allows the user to specify whether the main Apache .conf file should be appended with the LoadModule entry.
Line 94: Line 63:
  
 ===== Implemented ===== ===== Implemented =====
 +
 +**Order in these sections:** Language changes first, library changes later.
 +
 +==== PHP 5.6 ====
 +
 +  * [[rfc:​timing_attack|Timing attack safe string comparison function]]\\ New function to perform time-constant string comparison (Created 2013/12/22)
 +  * [[rfc:​session-lock-ini|Introduce session_start() options - read_only, lazy_write, unsafe_lock and lazy_destory]]\\ Introduce session_start() options that enable/​disable read_only, lazy_destroy,​ lazy_write, unsafe_lock that minimizes session data locking during a script execution. (Created 2014/01/20) (Proposal 1 only)
 +  * [[rfc:​debug-info|__debugInfo() magic method]]\\ Support get_debug_info hook for userspace classes
 +  * [[rfc:​pow-operator|Exponential operator]]\\ Exponential operator
 +  * [[rfc:​use_function|Importing namespaced functions]]\\ Proposes to allow importing namespaced functions through a new `use function` sequence.
 +  * [[rfc:​const_scalar_exprs|Constant Scalar Expressions (with constants)]]\\ This RFC proposes adding support for Constant Scalar Expressions with support for constants being operands.
 +  * [[rfc:​incompat_ctx|Remove calls from incompatible context]]\\ Calls from incompatible context deprecated in 5.6 (will be removed in next version).
 +  * [[rfc:​variadics|Dedicated syntax for variadic functions]]\\ This RFC introduces a dedicated syntax for variadic functions.
 +  * [[rfc:​argument_unpacking|Argument unpacking]]\\ This RFC proposes a syntax for argument unpacking.
 +  * [[rfc:​operator_overloading_gmp|Internal operator overloading and GMP improvements]]\\ Add support for operator overloading in internal classes and improve GMP using it
 +  * [[rfc:​phpdbg|phpdbg]]\\ Distribute phpdbg with PHP, a PHP debugger
 +  * [[rfc:​slim_post_data|Slim POST data]]\\ Use a temp PHP stream for HTTP payload.
 +  * [[rfc:​crypt_function_salt|Crypt() function salt]]\\ This RFC proposes changing crypt() function'​s salt parameter treatment.
 +  * [[rfc:​fpm_change_hat|Apparmor change_hat functionality for php-fpm]]\\ Proposes to add the possibility to change to a different hat under the apparmor LSM
 +  * [[rfc:​tls-peer-verification|TLS Peer Verification]]\\ Enable peer verification by default for encrypted client streams.
 +  * [[rfc::​improved-tls-defaults|Improved TLS Defaults]]\\ Implement more secure defaults for encrypted stream transfers
 +  * [[rfc:​default_encoding|Default character encoding]]\\ Default character encoding handling in PHP.
  
 ==== PHP 5.5 ==== ==== PHP 5.5 ====
Line 103: Line 94:
   * [[rfc:​constdereference|Const array/​string dereference]] \\ A little improvement to make things consistent   * [[rfc:​constdereference|Const array/​string dereference]] \\ A little improvement to make things consistent
   * [[rfc:​empty_isset_exprs|Allow arbitrary expression arguments to empty() and isset()]]\\ Proposes to allow ''​empty(getArray())''​ etc.   * [[rfc:​empty_isset_exprs|Allow arbitrary expression arguments to empty() and isset()]]\\ Proposes to allow ''​empty(getArray())''​ etc.
 +  * [[rfc:​optimizerplus|Integrating Optimizer+ into the PHP distribution]]\\ This RFC proposes to integrate the Zend Optimizer+ opcode cache into the PHP distribution
   * [[rfc:​hash_pbkdf2|Adding hash_pbkdf2 function]]\\ This RFC proposes adding a hash_pbkdf2 function to the hash package   * [[rfc:​hash_pbkdf2|Adding hash_pbkdf2 function]]\\ This RFC proposes adding a hash_pbkdf2 function to the hash package
   * [[rfc:​password_hash|Add Simplified Password Hashing]]\\ This RFC proposes adding 3 new functions to the core to expose a much simplified password hashing API.   * [[rfc:​password_hash|Add Simplified Password Hashing]]\\ This RFC proposes adding 3 new functions to the core to expose a much simplified password hashing API.
Line 114: Line 106:
   * [[rfc:​foreach-non-scalar-keys|Allow non-scalar keys in foreach]]\\ This RFC proposes to remove the type restrictions on foreach iteration   * [[rfc:​foreach-non-scalar-keys|Allow non-scalar keys in foreach]]\\ This RFC proposes to remove the type restrictions on foreach iteration
   * [[rfc:​array_column|Add array_column() function]]\\ This RFC proposes a new array function that returns the values of the specified column from a multi-dimensional array.   * [[rfc:​array_column|Add array_column() function]]\\ This RFC proposes a new array function that returns the values of the specified column from a multi-dimensional array.
-  * [[rfc:optimizerplus|Integrating Optimizer+ into the PHP distribution]]\\ This RFC proposes to integrate ​the Zend Optimizer+ opcode cache into the PHP distribution+  * [[rfc:curl-wrappers-removal-rfc|Removal of curl-wrappers]]\\ This RFC is about removing ​the curl stream wrappers of the PHP as of 5.5 and to move it on PECL for any eventual improvements. 
 +  * [[rfc:​strict_sessions|Strict Sessions]]\\ This RFC proposes an additional security measure for preventing session fixation.
  
  
Line 121: Line 114:
 Note: Many RFCs in this list have been [[todo:​php54:​vote|mass voted]]. Note: Many RFCs in this list have been [[todo:​php54:​vote|mass voted]].
  
 +  * [[rfc:​instance-method-call|Instantiating a class and calling methods/​accessing properties on same command]]\\ A proposal to add support to instantiating a class and calling its methods or accessing its properties on same command.
   * [[rfc:​HorizontalReuse|Traits]]\\ Traits is a mechanism for code reuse in single inheritance languages such as PHP. A Trait is intended to reduce some limitations of single inheritance by enabling a developer to reuse sets of methods freely in several independent classes living in different class hierarchies. This RFC proposes a basic version of Traits.   * [[rfc:​HorizontalReuse|Traits]]\\ Traits is a mechanism for code reuse in single inheritance languages such as PHP. A Trait is intended to reduce some limitations of single inheritance by enabling a developer to reuse sets of methods freely in several independent classes living in different class hierarchies. This RFC proposes a basic version of Traits.
   * [[rfc:​closures:​object-extension|Closures:​ Object Extension]]\\ How to extend closures to work with $this and objects.   * [[rfc:​closures:​object-extension|Closures:​ Object Extension]]\\ How to extend closures to work with $this and objects.
Line 141: Line 135:
   * [[rfc:​dtrace|DTrace Probes for PHP]]\\ Provide DTrace probes for PHP.   * [[rfc:​dtrace|DTrace Probes for PHP]]\\ Provide DTrace probes for PHP.
   * [[rfc:​new-output-api|New Output API]]\\ An RFC about the New Output API   * [[rfc:​new-output-api|New Output API]]\\ An RFC about the New Output API
 +  * [[rfc:​callable|Callable type hint]]\\ Callable type hint
 +  * [[rfc:​ldap_modify_batch|LDAP:​ Add ldap_modify_batch]] \\ This RFC proposes adding a lower-level modification function to the LDAP extension.
  
 ==== PHP 5.3 ==== ==== PHP 5.3 ====
Line 160: Line 156:
 ===== Declined ===== ===== Declined =====
  
 +  * [[rfc:​arrayof|Array Of]]\\ Proposed syntax for Type-Hinting against the contents or an array (Created 2014/01/15)
 +  * [[rfc:​secure-html-escape|Improve HTML escape]]\\ This RFC proposes more secure HTML escape by escaping "/"​ (Vote period: 2014/02/16 - 2014/02/22) (Created 2014/02/02)
 +  * [[rfc:​multibyte_char_handling|Multibyte Char Handling]]\\ This RFC proposes the way to handle multibyte chars. (Created 2014/01/16)
 +  * [[rfc:​altmbstring|Alternative mbstring implementation using ICU]]\\ A proposal to completely rewrite mbstring extension with ICU. (Created 2011/04/06)
 +  * [[rfc:​size_t_and_int64|64 bit platform improvements for string length and integer]]\\ Integer and String modifications for full 64 bit support
 +  * [[rfc:​alpanumeric_decrement|Alphanumeric Decrement]]\\ This will add support for decrementing alphanumeric strings (“ab”, for example) to complement the existing incrementing behaviour. (Created 2013/12/16)
 +  * [[rfc:​engine_exceptions|Exceptions in the engine]]\\ This RFC proposes to allow the use of exceptions in the engine. (Postponed to PHP 6.)
 +  * [[rfc:​keywords_as_identifiers|Extended keyword support]]\\ This RFC proposes to widen keyword support.
 +  * [[rfc:​anonymous_classes|Anonymous Class Support]]\\ This RFC proposes support for anonymous classes.
 +  * [[rfc:​instance_counter|Class instances counter]]\\ This RFC proposes a new function returning a list with class names and their instance counter.
   * [[rfc:​trailing-comma-function-args]]\\ Allow a trailing comma in function calls, similar to array declarations   * [[rfc:​trailing-comma-function-args]]\\ Allow a trailing comma in function calls, similar to array declarations
   * [[rfc:​array_part|Add an array_part() function]]\\ Adds a function to extract multi-dimensional slices   * [[rfc:​array_part|Add an array_part() function]]\\ Adds a function to extract multi-dimensional slices
Line 170: Line 176:
   * [[rfc:​propertygetsetsyntax-v1.2|Property Accessors Syntax]]\\ RFC for the addition of C#-style get/set accessors to PHP   * [[rfc:​propertygetsetsyntax-v1.2|Property Accessors Syntax]]\\ RFC for the addition of C#-style get/set accessors to PHP
   * [[rfc:​propertygetsetsyntax-alternative-typehinting-syntax|Alternative typehinting syntax for accessors]]\\ Proposes an improved typehinting syntax for the accessors proposal.   * [[rfc:​propertygetsetsyntax-alternative-typehinting-syntax|Alternative typehinting syntax for accessors]]\\ Proposes an improved typehinting syntax for the accessors proposal.
 +  * [[rfc:​automatic_property_initialization|Automatic Property Initialization]]\\ This RFC proposes automatic assignments of constructor arguments to properties. (Created 2013/09/27)
  
 ===== Withdrawn ===== ===== Withdrawn =====
  
 +  * [[rfc:​gmp_number|Make GMP number work like PHP number]]\\ Make compatible PHP number ​
 +  * [[rfc:​const_scalar_expressions2|Constant Scalar Expressions (re-opening)]]\\ This RFC proposes adding support for Constant Scalar Expressions.
 +  * [[rfc:​scalar_type_hinting_with_cast|Add scalar type hinting with casts]]\\ This RFC proposes adding scalar type hinting with casting to provide more robust parameter hinting.
 +  * [[rfc:​function_autoloading|Function Autoloading]]\\ This RFC proposes to refactor the existing autoloading mechanism to support function and constant autoloading.
 +  * [[rfc:​protocol_type_hinting|Structural Type Hinting]]\\ This RFC proposes a new type-hint format to allow run-time checking of Structural Types.
 +  * [[rfc:​const_scalar_expressions|Constant Scalar Expressions]]\\ This RFC proposes adding support for Constant Scalar Expressions.
   * [[rfc:​request-tempnam|Modify tempnam() to handle directories and auto-cleanup]]\\ Add TEMPNAM_DIR and TEMPNAM_REQUEST options to tempnam()   * [[rfc:​request-tempnam|Modify tempnam() to handle directories and auto-cleanup]]\\ Add TEMPNAM_DIR and TEMPNAM_REQUEST options to tempnam()
   * [[rfc:​parameter_type_casting_hints|Parameter Type Casting Hints]]\\ This RFC proposes adding type casting hints to function declarations.   * [[rfc:​parameter_type_casting_hints|Parameter Type Casting Hints]]\\ This RFC proposes adding type casting hints to function declarations.
Line 180: Line 193:
   * [[rfc:​object_cast_magic|Cast and Assign Magic Methods]]\\ Feature request to expose object_cast,​ get and set to PHP land code via two new magic methods   * [[rfc:​object_cast_magic|Cast and Assign Magic Methods]]\\ Feature request to expose object_cast,​ get and set to PHP land code via two new magic methods
   * [[rfc:​mysqlnd_localhost_override|Add mysqlnd.localhost_override option]]\\ This RFC proposes to add mysqlnd.localhost_override to more easily override localhost when connecting to a MySQL database.   * [[rfc:​mysqlnd_localhost_override|Add mysqlnd.localhost_override option]]\\ This RFC proposes to add mysqlnd.localhost_override to more easily override localhost when connecting to a MySQL database.
 +  * [[rfc:​useas|Allow use T_AS in closure use statement]]\\ Allow user use a alias name for lexical variable of closure
 +  * [[rfc:​strncmpnegativelen|strn(case)cmp supporting a negative length as its third paramter]]\\ This extends PHP's string function strn(case)cmp to support a negative length as parameter
 +  * [[rfc:​nested_classes|Nested Class Support]]\\ This RFC proposes support for nested classes, following on from Anonymous Classes.
  
 ===== Inactive ===== ===== Inactive =====
- 
 This section is for RFCs that have been deferred, obsoleted, or appear to have been abandoned. Sorry if your RFC is added here and you feel it is still active; please move it back to the appropriate section. This section is for RFCs that have been deferred, obsoleted, or appear to have been abandoned. Sorry if your RFC is added here and you feel it is still active; please move it back to the appropriate section.
  
 +  * [[rfc:​peclversioning|PECL versioning]]\\ This RFC, about tackling the versioning issues in PECL extensions, has been implemented across PECL for several months. But what should be done about extension versioning in the PHP core?
 +  * [[rfc:​protectedlookup|Improve consistency of protected member lookups]]\\ This RFC proposes to eliminate an inconsistency in the way protected class members are resolved.
 +  * [[rfc:​drop_sql.safe_mode|Drop sql.safe_mode]]\\ Dropping a php.ini setting affecting two extensions
 +  * [[rfc:​get-random|Get Random]]\\ This RFC talks about how to get a (better) random string in PHP
 +  * [[rfc:​error-optimizations|Error optimizations]]\\ A way to optimize the formatting of our errors
 +  * [[rfc:​autofunc|Function autoloading through spl_autoload*]]\\ This RFC introduces a potential implementation for function autoloading which would be consistent with what we have for autoloading classes. (Created 2011/08/05)
 +  * [[rfc:​cli-strict|CLI options for strict and quiet modes]]\\ This RFC proposes a ''​-W''​ option to turn on maximum error reporting, and a ''​-Q''​ option for no error reporting. (Created 2011/07/05)
 +  * [[rfc:​logicalshiftoperator|Add Logical Shift Operators]]\\ Add logical shift operators for bitwise shifting of strings (Created 2011/07/18)
 +  * [[rfc:​grisu3-strtod|Faster strtod algorithm]]\\ This RFC proposes to add the Grisu3 strtod algorithm as an optional feature to PHP. (Created 2011/07/15)
 +  * [[rfc:​isset-set-operator|Isset Set Operator]]\\ This RFC proposes new operators for handling unset/​falsey variables.
 +  * [[rfc:​object_cast_to_types|Scalar Type Casting Magic Methods]]\\ This RFC proposes a set of new scalar type casting magic methods for classes.
 +  * [[rfc:​docblockparser|docBlock Parser]]\\ Proposal to add docBlock parsing to the Reflection extension
 +  * [[rfc:​annotations-in-docblock|Annotations in doc block]]\\ Class Metadata feature (aka Annotations) support in PHP through DocBlock
 +  * [[rfc:​objectarrayliterals|Object and Array Literals]]\\ This RFC proposes first-class,​ inline object and array literals similar to JSON.
 +  * [[rfc:​weakreferences|Weak References]]\\ This RFC proposes the introduction of Weak References in PHP via a new SPL class.
 +  * [[rfc:​pdov1|PDO Version 1 Improvements]]\\ This RFC proposes a set of improvements to be made to PDO.
 +  * [[rfc:​taint|Tainted variables]]\\ This RFC proposes an implementation of variable tainting in PHP.
 +  * [[rfc:​static-classes|Static classes]]\\ This RFC proposes the introduction of static classes for PHP
 +  * [[rfc:​class_casting_to_scalar|class casting to scalar]]\\ This RFC proposes a way to do like <​nowiki>​__</​nowiki>​toString(),​ for other scalar types
 +  * [[rfc:​autodefine|Autodefinition]]\\ This RFC proposes the ability to define missing definitions (generalization of autoload).
 +  * [[rfc:​linecontrol|Line Markers in PHP]]\\ This RFC proposes the introduction of line markers in PHP.
 +  * [[rfc:​autoboxing|Autoboxing]]\\ Autoboxing feature in PHP
 +  * [[rfc:​socketactivation|Systemd socket activation]]\\ Systemd socket activation support for PHP-FPM (Created 2012/10/18)
 +  * [[rfc:​deprecated-modifier|Add a deprecated modifier for functions]]\\ Add a deprecated modifier for functions (Created 2012/12/25)
 +  * [[rfc:​prototype_checks|Clarifying/​Improving the prototype checks]]\\ This RFC discusses the current state of prototype checks, and gives some directions for discussion and improvement. (Created 2011/09/19)
 +  * [[rfc:​jenkins|Introducing Jenkins]]\\ This RFC proposes using Jenkins as a Continuous Ingtegration environment for the php project. (Created 2011/11/01)
 +  * [[rfc:​anonymous_catch|Support for anonymous catch-statements]]\\ This RFC proposes adding catch-statements without variables, and fully anonymous catches. (Created 2013/06/25)
 +  * [[rfc:​errors_as_exceptions|Errors as Exceptions]]\\ This RFC discusses the conversion of errors to exceptions (Created 2011/04/06)
 +  * [[rfc:​traitsmodifications|Proposed modifications to traits]]\\ This RFC proposes three modifications to traits: increasing separation and consistency of inheritance vs. trait composition,​ adding trait-local scope, and extending ''​use''​ syntax. (Created 2011/04/06)
 +  * [[rfc:​datetime_tostring|Add toString to DateTime]]\\ A proposal to add toString to DateTime (Created 2012/09/01)
 +  * [[rfc:​propertygetsetsyntax-as-implemented|Property get/set syntax]]\\ This RFC proposes to add a C# style property get/set syntax to PHP classes. (Created 2011-12-21 - document index)
 +  * [[rfc:​optional-t-function|Make T_FUNCTION in method declarations optional.]]\\ A proposal for removing the requirement to use T_FUNCTION in method declarations. (Created 2011/04/06)
 +  * [[rfc:​jsonable|Jsonable interface]]\\ Feature request to allow support json_(encode|decode) to handle Object instance conversions.
 +  * [[rfc:​extensionsiberia|Siberia]]\\ This RFC proposes to create a cemetery for dead extensions (PECL or core).
 +  * [[rfc:​array_delete|array_delete]]\\ This RFC proposes adding array_delete() as an intuitive API for array element deletion. (Created 2012/08/22)
 +  * [[rfc:​enum|Enum language structure]]\\ A proposal to add the enum language structure (Created 2010/05/21)
 +  * [[rfc:​enhanced_error_handling|Enhanced Error Handling]]\\ This offers a concept and implementation to let the user (php coder) choose between php_error, exception et al while retaining backwards compatibility (Created 2009/12/27)
 +  * [[rfc:​typechecking|Parameter (and Return) value type hints/​checks]]\\ Several RFC that propose to complete the actual parameter type hints/​checks (and an implementation for return value type hints). (Created 2009/07/03)
 +  * [[rfc:​tls|Native TLS in ZTS]]\\ Improving performance of ZTS builds by using native thread local storage. (Created 2008/08/24)
 +  * [[rfc:​better_benchmarks|Better benchmarks for PHP]]\\ A proposal for replacing current bench.php benchmarking script. (Created 2009/04/03)
 +  * [[rfc:​remove_zend_api|Remove reliance of Zend API]]\\ A proposal to remove the use of the Zend API in PHP libraries. (Created 2009/03/29)
 +  * [[rfc:​php_native_interface|PHP Native Interface]]\\ Provide complete alternative to writing libraries interfaces using the Zend API libraries. (Created 2009/04/05)
 +  * [[rfc:​fcallfcall|Function call chaining]]\\ Function call chaining implementation. (Created 2010/01/30)
   * [[rfc:​source_files_without_opening_tag|Source files without opening tag]]\\ This RFC proposes a way to support source code files without <?php at the top.   * [[rfc:​source_files_without_opening_tag|Source files without opening tag]]\\ This RFC proposes a way to support source code files without <?php at the top.
 +  * [[rfc:​phpp|New File Type for Pure-Code PHP Scripts]]\\ This RFC proposes the creation of a new .phpp file type for scripts that contain only PHP code without a <?php or ?> tag.
 +  * [[rfc:​namedparameters|Named Parameters (obsolete)]]\\ Dummy RFC for named parameters, superseded by [[rfc:​named_params|Named Parameters]].
 +  * [[rfc:​lemon|Lemon as a language parser]]\\ This RFC discusses the switch from YACC/Bison to lemon for the main language parser
rfc.1364698654.txt.gz · Last modified: 2013/03/31 04:57 by stas