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, yet.

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.

Implementation

After the project is implemented, this section should contain

  1. the version(s) it was merged to
  2. a link to the git commit(s)
  3. a link to the PHP manual entry for the feature
  4. a link to the language specification section (if any)

References

Links to external references, discussions or RFCs

Rejected Features

Keep this updated with features that were discussed on the mail lists.

rfc/deprecate-and-remove-intl_idna_variant_2003.txt · Last modified: 2017/01/08 14:48 by cmb