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
 
 
cmb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Final result:
24
0

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: by 127.0.0.1