In the PHP intl extension, specifically the Locale class, it says:
Locales are identified using RFC 4646 language tags
The reason I mention this is that RFC 4646 has been deprecated in favour of RFC 5646.
I had intended to use the intl extension to translate ISO 639 codes to their respective language name (e.g. en to English). Whilst this is not essential, it would be a helpful ability to have available.
The 639 language codes are actively maintained and altered by their respective registration authorities. This is not a hypothetical concern either, just see the change-log for ISO 639-3.
The use of the now deprecated language tag leaves me a little concerned about how actively the intl extension is being maintained; RFC 5656 was released in 2009, this is hardly a cutting edge standard.
The intl extension relies on ICU to supply language codes, among other things. The ICU version is stored in the constant PHP_ICU_VERSION
. ICU itself relies on the Unicode Common Locale Data Repository (CLDR) as specified in the same documentation you cited in the Locale class: "The extensions used by CLDR in [Unicode Standard Annex] #35 (and inherited by ICU) are valid and used wherever they would be in ICU normally."