Hi internals, After the RFC to add IntlDatePatternGenerator () was accepted, it was brought up that the duplication of procedural and OO style was not necessarily/useful anymore. This already has some (old) precedent - in 2012, UConverter was added to ext/intl (https://wiki.php.net/rfc/uconverter) and in 2014 IntlChar (https://wiki.php.net/rfc/intl.char) - both of which only provide a class, but not the procedural API. This was also shortly discussed on the mailing list for IntlChar: https://externals.io/message/79146#79167 after which the procedural API was dropped without much ado.
When I wrote the IntlDatePatternGenerator RFC, I was not aware that the procedural API was viewed as deprecated, nor that there had been additions to ext/intl that were purely OO. In the thread after its vote, it was also suggested that we add a policy that forbids new additions from adding duplicated APIs, and that OO style should be preferred if possible. I am not sure if I am the best person to write such an RFC, but I wanted to bring this to its own thread and provide the context I have dug up so far. The duplication of the OO and procedural API dates back to the addition of the intl extension to core. There is some discussion about it in this thread from 2008: https://externals.io/message/36775 (ignore the unrelated discussion about PHP6) The main argument at this point was that OO in PHP is a new thing, and that while the OO API is objectively better, the procedural API should also be there to lessen the learning curve for existing PHP users that are not yet familiar with OOP. I would argue that 13 years later, this argument no longer holds - anyone who has used PHP at some point since then most likely has encountered classes. One open question that still remains is what we do with the already existing procedural API. Should it be deprecated? Should it only be soft-deprecated, in that we mention in the documentation that the OO style is preferred, but that the procedural API is not planned to be removed? Should we just leave the procedural API as-is and live with the fact that some classes have procedural counterparts and some don't? I would personally lean towards (at least soft-) deprecation just for consistency, but I would like to hear what you would have to say. Regards, Mel -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php