rfc:remove_deprecated_functionality_in_php7

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
rfc:remove_deprecated_functionality_in_php7 [2015/01/02 15:42] nikicrfc:remove_deprecated_functionality_in_php7 [2017/09/22 13:28] (current) – external edit 127.0.0.1
Line 2: Line 2:
   * Date: 2014-09-11   * Date: 2014-09-11
   * Author: Nikita Popov <nikic@php.net>   * Author: Nikita Popov <nikic@php.net>
-  * Status: Under Discussion+  * Status: Implemented (PHP 7.0)
   * Targeting: PHP 7   * Targeting: PHP 7
   * Discussion: http://markmail.org/message/vcladdh5sciqjpvg   * Discussion: http://markmail.org/message/vcladdh5sciqjpvg
Line 12: Line 12:
 The following extensions are deprecated: The following extensions are deprecated:
  
-  * ext/ereg (since PHP 5.3; use ext/pcre instead) +  * ext/ereg (since PHP 5.3; use ext/pcre instead) [[https://github.com/php/php-src/commit/fea9a6fc7702c53df5e9f4c16857dc921d8b5997|REMOVED]] ([[http://pecl.php.net/package/ereg|PECL extension]]
-  * ext/mysql (since PHP 5.5; use ext/mysqli or ext/pdo_mysql instead) [TODO]+  * ext/mysql (since PHP 5.5; use ext/mysqli or ext/pdo_mysql instead) [[https://github.com/php/php-src/commit/fd1578c196575c7e120a84ee030bb87c14a199b0|REMOVED]] ([[http://pecl.php.net/package/mysql|PECL extension]])
  
 The following language features are deprecated: The following language features are deprecated:
  
-  * Assignment of ''new'' by reference (since PHP 5.3; use normal assignment instead) +  * Assignment of ''new'' by reference (since PHP 5.3; use normal assignment instead) [[https://github.com/php/php-src/commit/4d3e4d3bf994739681613f9061d056e10f731b65|REMOVED]] 
-  * Scoped calls of non-static methods from incompatible ''$this'' context (since PHP 5.6)+  * Scoped calls of non-static methods from incompatible ''$this'' context (since PHP 5.6) [[https://github.com/php/php-src/commit/085774997b591c2babbb623fe7102ce2c77bc9fb|REMOVED]]
  
 The following functions are deprecated: The following functions are deprecated:
  
-  * ''dl'' on fpm-fcgi (since PHP 5.3) +  * ''dl'' on fpm-fcgi (since PHP 5.3) [[https://github.com/php/php-src/commit/e05993dfa20e934ba99ccd5b2b944a7759126f58|REMOVED]] 
-  * ''set_magic_quotes_runtime'' and ''magic_quotes_runtime'' (since PHP 5.4) +  * ''set_magic_quotes_runtime'' and ''magic_quotes_runtime'' (since PHP 5.4) [[https://github.com/php/php-src/commit/a60efc5e11b65083ef4cc8a132df620e1642dd76|REMOVED]] 
-  * ''set_socket_blocking'' (since PHP 5.4; use ''stream_set_blocking'' instead) +  * ''set_socket_blocking'' (since PHP 5.4; use ''stream_set_blocking'' instead) [[https://github.com/php/php-src/commit/ca11bc0325496bef94d4417f300e323040fb11db|REMOVED]] 
-  * ''mcrypt_generic_end'' (since PHP 5.4; use ''mcrypt_generic_deinit'' instead) +  * ''mcrypt_generic_end'' (since PHP 5.4; use ''mcrypt_generic_deinit'' instead) [[https://github.com/php/php-src/commit/c488a4570197240af8e05eaab95c0b308c2246d8|REMOVED]] 
-  * ''mcrypt_ecb'', ''mcrypt_cbc'', ''mcrypt_cfb'' and ''mcrypt_ofb'' (since PHP 5.5, but documented as deprecated earlier; use ''mcrypt_encrypt'' and ''mcrypt_decrypt'' instead) +  * ''mcrypt_ecb'', ''mcrypt_cbc'', ''mcrypt_cfb'' and ''mcrypt_ofb'' (since PHP 5.5, but documented as deprecated earlier; use ''mcrypt_encrypt'' and ''mcrypt_decrypt'' instead) [[https://github.com/php/php-src/commit/7810659cc372b17d48a7f0a799cc1509471916a1|REMOVED]] 
-  * ''datefmt_set_timezone_id'' and ''IntlDateFormatter::setTimeZoneID'' (since PHP 5.5; use ''datefmt_set_timezone'' or ''IntlDateFormatter::setTimeZone'' instead) [TODO]+  * ''datefmt_set_timezone_id'' and ''IntlDateFormatter::setTimeZoneID'' (since PHP 5.5; use ''datefmt_set_timezone'' or ''IntlDateFormatter::setTimeZone'' instead) [[https://github.com/php/php-src/commit/cf0ffa8e4c0bb92bfae60963a6e4c0dea00bd003|REMOVED]]
  
 The following ini options are deprecated: The following ini options are deprecated:
  
-  * ''xsl.security_prefs'' (since PHP 5.4; use ''XsltProcessor::setSecurityPrefs'' instead)+  * ''xsl.security_prefs'' (since PHP 5.4; use ''XsltProcessor::setSecurityPrefs'' instead) [[https://github.com/php/php-src/commit/a81e65a5018a04379914c605f7a9c69ac8941600|REMOVED]]
   * ''iconv.input_encoding'', ''iconv.output_encoding'', ''iconv.internal_encoding'', ''mbstring.http_input'', ''mbstring.http_output'' and ''mbstring.internal_encoding'' (since PHP 5.6; use ''php.input_encoding'', ''php.internal_encoding'' and ''php.output_encoding'' instead) [TODO]   * ''iconv.input_encoding'', ''iconv.output_encoding'', ''iconv.internal_encoding'', ''mbstring.http_input'', ''mbstring.http_output'' and ''mbstring.internal_encoding'' (since PHP 5.6; use ''php.input_encoding'', ''php.internal_encoding'' and ''php.output_encoding'' instead) [TODO]
  
 The following miscellaneous functionality is deprecated: The following miscellaneous functionality is deprecated:
  
-  * The ''$is_dst'' parameter of the ''mktime()'' and ''gmmktime()'' functions (since PHP 5.1) +  * The ''$is_dst'' parameter of the ''mktime()'' and ''gmmktime()'' functions (since PHP 5.1) [[https://github.com/php/php-src/commit/9c5eaac18b65038cc377c7335b32889b892cf1fc|REMOVED]] 
-  * ''#'' style comments in ini files (since PHP 5.3; use '';'' style comments instead) +  * ''#'' style comments in ini files (since PHP 5.3; use '';'' style comments instead) [[https://github.com/php/php-src/commit/83391b5518619cce7d2a1baf5a4434b1690a33d1|REMOVED]] 
-  * String category names in ''setlocale()'' (since PHP 5.3; use ''LC_*'' constants instead) +  * String category names in ''setlocale()'' (since PHP 5.3; use ''LC_*'' constants instead) [[https://github.com/php/php-src/commit/4c115b6b71e31a289d84f72f8664943497b9ee31|REMOVED]] 
-  * Unsafe curl file uploads (since PHP 5.5; use ''CurlFile'' instead) +  * Unsafe curl file uploads (since PHP 5.5; use ''CurlFile'' instead) [[https://github.com/php/php-src/commit/b5184ef33606c808b66c4b2738c80376c95de65b|REMOVED]] 
-  * ''preg_replace()'' eval modifier (since PHP 5.5; use ''preg_replace_callback'' instead) +  * ''preg_replace()'' eval modifier (since PHP 5.5; use ''preg_replace_callback'' instead) [[https://github.com/php/php-src/commit/cb9c99ebd075d1d4fae0cbf5df54ca14c4071584|REMOVED]] 
-  * ''PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT'' driver option (since PHP 5.6; use ''PDO::ATTR_EMULATE_PREPARES'' instead) [TODO+  * ''PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT'' driver option (since PHP 5.6; use ''PDO::ATTR_EMULATE_PREPARES'' instead) [[https://github.com/php/php-src/commit/4694e1c02039114915704f0206f1ffb7a0efe4ad|REMOVED]
-  * ''CN_match'' and ''SNI_server_name'' stream context option (since PHP 5.6; use ''peer_name'' instead) [TODO]+  * ''CN_match'' and ''SNI_server_name'' stream context option (since PHP 5.6; use ''peer_name'' instead) [[https://github.com/php/php-src/commit/2a87a42cd431ea8008ce24db6e57948052ff805d|REMOVED]]
  
 ===== Patches and Tests ===== ===== Patches and Tests =====
  
-Note: Patches are very outdated.+Note: Patches are very outdated. I'll update them after the votes.
  
   * Removal of ext/ereg: https://github.com/php/php-src/pull/816   * Removal of ext/ereg: https://github.com/php/php-src/pull/816
Line 52: Line 52:
  
 ===== Votes ===== ===== Votes =====
 +
 +Voting started on 2015-01-02 and ended on 2015-01-16. All votes refer to PHP 7.
 +
 +All removals have been accepted.
  
 ==== ext/ereg ==== ==== ext/ereg ====
Line 60: Line 64:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Unbundle the ext/ereg extension?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== ext/mysql ==== ==== ext/mysql ====
Line 69: Line 78:
 Vote: Requires simple majority. Vote: Requires simple majority.
  
-==== Assignment of ''new'' by reference ====+<doodle title="Unbundle the ext/mysql extension?" auth="nikic" voteType="single" closed="true"> 
 +   * Yes 
 +   * No 
 +</doodle> 
 + 
 +==== Assignment of new by reference ====
  
 Since PHP 5.3 assignment of ''new'' expressions by references is deprecated. It can be replaced with a normal assignment ((reference-breaking notwithstanding)): Since PHP 5.3 assignment of ''new'' expressions by references is deprecated. It can be replaced with a normal assignment ((reference-breaking notwithstanding)):
Line 84: Line 98:
 Vote: Requires 2/3 majority. Vote: Requires 2/3 majority.
  
-==== Scoped calls of non-static methods from incompatible ''$this'' context ====+<doodle title="Remove assignment of new by reference?" auth="nikic" voteType="single" closed="true"> 
 +   * Yes 
 +   * No 
 +</doodle> 
 + 
 +==== Scoped calls of non-static methods from incompatible $this context ====
  
 Since PHP 5.5 scoped calls of non-static methods from incompatible ''$this'' contexts are deprecated, while they already generated an ''E_STRICT'' level error previously. The deprecation has been decided in [[rfc/incompat_ctx]], where examples of this functionality can be found. Since PHP 5.5 scoped calls of non-static methods from incompatible ''$this'' contexts are deprecated, while they already generated an ''E_STRICT'' level error previously. The deprecation has been decided in [[rfc/incompat_ctx]], where examples of this functionality can be found.
Line 91: Line 110:
  
 Vote: Requires 2/3 majority. Vote: Requires 2/3 majority.
 +
 +<doodle title="Remove support for calls from incompatible context?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== dl() on fpm-fcgi ==== ==== dl() on fpm-fcgi ====
Line 99: Line 123:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Remove dl() in fpm-fcgi SAPI?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== set_magic_quotes_runtime() and magic_quotes_runtime() ==== ==== set_magic_quotes_runtime() and magic_quotes_runtime() ====
Line 105: Line 134:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Remove (set_)magic_quotes_runtime() functions?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== Other deprecated functions ==== ==== Other deprecated functions ====
Line 119: Line 153:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Remove listed deprecated functions?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== xsl.security_prefs ini directive ==== ==== xsl.security_prefs ini directive ====
Line 125: Line 164:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Remove xsl.security_prefs ini directive?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== iconv and mbstring encoding ini directives ==== ==== iconv and mbstring encoding ini directives ====
Line 131: Line 175:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Remove extension specific encoding ini directives?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== $is_dst parameter of the mktime() and gmmktime() functions ==== ==== $is_dst parameter of the mktime() and gmmktime() functions ====
Line 137: Line 186:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Remove $is_dst parameter of the mktime() and gmmktime() functions?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== #-style comments in ini files ==== ==== #-style comments in ini files ====
Line 143: Line 197:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Remove support for #-style comments in ini files?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== String category names in setlocale() ==== ==== String category names in setlocale() ====
Line 156: Line 215:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Disallow string category names in setlocale()?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== Unsafe curl file uploads ==== ==== Unsafe curl file uploads ====
Line 164: Line 228:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Disallow enabling unsafe curl uploads?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== preg_replace() eval modifier ==== ==== preg_replace() eval modifier ====
Line 170: Line 239:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Remove preg_replace() eval modifier?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT driver option ==== ==== PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT driver option ====
Line 176: Line 250:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Remove PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT driver option?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
  
 ==== CN_match and SNI_server_name stream context options ==== ==== CN_match and SNI_server_name stream context options ====
Line 182: Line 261:
  
 Vote: Requires simple majority. Vote: Requires simple majority.
 +
 +<doodle title="Remove CN_match and SNI_server_name stream context options?" auth="nikic" voteType="single" closed="true">
 +   * Yes
 +   * No
 +</doodle>
rfc/remove_deprecated_functionality_in_php7.1420213327.txt.gz · Last modified: 2017/09/22 13:28 (external edit)