PHP RFC: Deprecate and remove INTL_IDNA_VARIANT_2003
- Version: 1.1
- Date: 2017-01-07
- Author: Christoph M. Becker, cmb@php.net
- Status: Implemented
- First Published at: http://wiki.php.net/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.
Patches and Tests
Implementation
- PR #2355 has been merged into master (which is supposed to become PHP-7.2) with commit 6cfbb7f9.
- 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.