PHP RFC: Deprecate and remove INTL_IDNA_VARIANT_2003
- Version: 1.1
- Date: 2017-01-07
- Author: Christoph M. Becker, email@example.com
- Status: Under Discussion
- First Published at: http://wiki.php.net/rfc/deprecate-and-remove-intl_idna_variant_2003
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.
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).
Besides the obvious behavioral changes to idn_to_ascii() an idn_to_utf8() there is no further impact on SAPIs, extensions or OPcache.
Proposed Voting Choices
Whether to implement the proposal above, or not.
This RFC requires a 2/3 majority.
Patches and Tests
I have not developed a patch yet, but are planning to do so before voting starts.
After the project is implemented, this section should contain
- the version(s) it was merged to
- a link to the git commit(s)
- a link to the PHP manual entry for the feature
- a link to the language specification section (if any)
Links to external references, discussions or RFCs
Keep this updated with features that were discussed on the mail lists.