Uno dei motivi principali per cui il vecchio lavoro di PHP 6 è stato interrotto è stato dovuto alla complessità interna che ha portato e alla quantità di lavoro da svolgere, che a malapena nessuno ha completamente ignorato.
Un po 'di storia: l'implementazione Unicode di PHP 6 è stata progettata dalla necessità di un utente PHP più grande e ha provato a fare Unicode "giusto". Dopo alcune valutazioni, il progettista principale del supporto di essere Unicode di PHP ha scelto di aggiungere un nuovo tipo di stringa che è internamente Utf-16 e di consentire l'utilizzo di incisioni diverse in luoghi diversi. Quindi il codice potrebbe essere scritto in una codifica, l'output potrebbe usare una codifica diversa e "operazioni runtme" alcune altre codifiche. Il motivo della scelta di UTF-16 era che il lavoro doveva essere basato sul livrary ICU che utilizza UTF-16 e si è scoperto che questa codifica rende le operazioni di stringa comuni in modo rapido mentre la conversione tra utf- e utf-16 è relativamente economica . Fin qui tutto bene.
Ora la conseguenza di ciò è innanzitutto l'introduzione di un nuovo tipo di stringa. Il sistema di tipi interno di PHP fino ad allora aveva alcuni tipi (NULL, bool, int / long, float / double, stringa, array, risorsa, oggetto) e molti codici avevano alcune ipotesi su questo. Oltre a questi presupposti, tutte le funzioni che operano su stringhe, e ce ne sono molte, devono essere valutate individualmente e si deve decidere come gestire le codifiche. Dovrebbero funzionare su stringhe binarie o stringhe unicode? Se è richiesta una conversione quale codifica dovrebbe essere usata ecc. E questo è molto lavoro e in alcuni casi abbastanza complicato da fare nel modo giusto. Inoltre, le API interne sono diventate piuttosto complicate, poiché la maggior parte delle API chiave in PHP hanno versioni per stringhe binarie (quella precedente) e spesso una versione per stringhe "runtime coded",
Nel processo in cui molti sviluppatori si sono imbattuti nella coplexity, sono rimasti infastiditi da utf-16 e non gli piaceva il fatto che questo avrebbe più che raddoppiato l'uso della memoria e avrebbe speso molto tempo a convertire le stringhe rompendo la maggior parte delle applicazioni esistenti. Quindi, PHP guidato da volontari, sempre meno sviluppatori ci stavano lavorando e altre cose si sono accumulate e i partecipanti sono diventati infelici e alla fine hanno dovuto essere abbandonati.
Cosa potrebbe portare il futuro? - Sta accadendo una lenta evoluzione che sempre più cose in PHP sono state costruite intorno a utf-8. Non in modo forte con un tipo personalizzato e costringendo tutto e attualmente gli sviluppatori non sono motivati a toccare questo ferro caldo. Si può sperare che qualcuno abbia una buona proposta per farlo funzionare bene, ma attualmente "tutti" scapperanno se sentiranno solo la parola. :)