rfc:deprecate-and-remove-intl_idna_variant_2003

PHP RFC: Deprecate and remove INTL_IDNA_VARIANT_2003

Introduction

As of ICU 55.1 (released 2015-04-01) the IDNA2003 APIs are deprecated, because UTS #46 should be preferred over the obsolete IDNA 2003 variant. However, the intl extension still uses INTL_IDNA_VARIANT_2003 as default for idn_to_ascii() and idn_to_utf8(), which should be changed as soon as possible.

Proposal

Therefore I suggest the following procedure:

  • PHP 7.2: deprecate INTL_IDNA_VARIANT_2003
  • PHP 7.4: change the default of idn_to_ascii()'s and idn_to_utf8()'s $variant parameter to INTL_IDNA_VARIANT_UTS46
  • PHP 8.0: remove support for INTL_IDNA_VARIANT_2003 altogether

Backward Incompatible Changes

Obviously, code explicitly using INTL_IDNA_VARIANT_2003 would break (during PHP 7 only with regard to triggering a deprecation notice), and code relying on the default variant might break (however, it might be “magically” fixed as well).

RFC Impact

Besides the obvious behavioral changes to idn_to_ascii() an idn_to_utf8() there is no further impact on SAPIs, extensions or OPcache.

Open Issues

None.

Proposed Voting Choices

Whether to implement the proposal above, or not.

This RFC requires a 2/3 majority. Voting starts on 2017-01-31T12:30Z and ends on 2017-02-14T12:30Z.

Deprecate and remove INTL_IDNA_VARIANT_2003
Real name Yes No
ashnazg (ashnazg)  
bishop (bishop)  
cmb (cmb)  
colinodell (colinodell)  
dams (dams)  
daverandom (daverandom)  
eliw (eliw)  
galvao (galvao)  
joey (joey)  
kguest (kguest)  
lcobucci (lcobucci)  
leigh (leigh)  
mariano (mariano)  
mike (mike)  
nikic (nikic)  
ocramius (ocramius)  
pollita (pollita)  
salathe (salathe)  
sammyk (sammyk)  
sobak (sobak)  
stas (stas)  
svpernova09 (svpernova09)  
trowski (trowski)  
zeev (zeev)  
Final result: 24 0
This poll has been closed.

Patches and Tests

Implementation

  1. PR #2355 has been merged into master (which is supposed to become PHP-7.2) with commit 6cfbb7f9.
  2. The PHP manual has been updated. The migration guide will be written based on UPGRADING, which already has a respective note.

References

Rejected Features

None.

rfc/deprecate-and-remove-intl_idna_variant_2003.txt · Last modified: 2017/02/14 14:54 by cmb