L'une des principales raisons pour lesquelles l'ancien travail PHP 6 a été arrêté était en raison de la complexité interne qu'il apportait et de la quantité de travail à faire, ce que presque personne ne comprenait à peine.
Un peu d'histoire: l'implémentation Unicode de PHP 6 a été conçue par le besoin d'un plus grand utilisateur PHP et a essayé de faire Unicode "correctement". Après une certaine évaluation, le concepteur principal de la prise en charge de PHP-to-Unicode a choisi d'ajouter un nouveau type de chaîne qui est en interne Utf-16 et d'autoriser différents codages à utiliser à différents endroits. Ainsi, le code peut être écrit dans un codage, la sortie peut utiliser un codage différent et des "opérations runtme" un autre codage. La raison du choix de l'UTF-16 était que le travail devrait être basé sur l'ICU livrary qui utilise UTF-16 et il a été constaté que cet encodage permet des opérations de chaîne courantes d'une manière rapide tandis que la conversion entre utf- et utf-16 est relativement bon marché. . Jusqu'ici tout va bien.
Maintenant, la conséquence de cela est avant tout l'introduction d'un nouveau type de chaîne. Le système de type interne de PHP avait jusque-là quelques types (NULL, bool, int / long, float / double, chaîne, tableau, ressource, objet) et beaucoup de code avait certaines hypothèses à ce sujet. Outre ces hypothèses, toutes les fonctions fonctionnant sur des chaînes, et il y en a beaucoup, doivent être évaluées individuellement et il faut décider comment gérer les encodages. Doivent-ils fonctionner sur des chaînes binaires ou des chaînes unicode? Si une conversion est requise, quel codage doit être utilisé, etc., et cela demande beaucoup de travail et, dans certains cas, est assez compliqué à faire correctement. De plus, les API internes sont devenues assez compliquées, car la plupart des API clés de PHP ont des versions pour les chaînes binaires (l'ancienne), puis souvent une version pour les chaînes "encodées à l'exécution",
Au cours du processus, de nombreux développeurs sont tombés sur la coplexité, sont devenus agacés par utf-16 et n'aimaient pas le fait que cela doublerait l'utilisation de la mémoire et passerait beaucoup de temps à convertir des chaînes tout en cassant la plupart des applications existantes. Ainsi, PHP étant piloté par des bénévoles, de moins en moins de développeurs y travaillaient et d'autres choses s'accumulaient et les contributeurs étaient mécontents et à la fin il a dû être abandonné.
Maintenant, que pourrait apporter l'avenir? - Il y a une évolution lente qui se produit et de plus en plus de choses en PHP sont construites autour de utf-8. Pas de manière forte avec un type personnalisé et forçant tout et actuellement les développeurs ne sont pas motivés pour toucher ce fer à repasser. On peut espérer que quelqu'un a une bonne proposition pour le faire fonctionner correctement, mais actuellement "tout le monde" s'enfuira s'il n'entend que le mot. :)