PHP 6 - wie geht's weiter?

Am Thema Unicode-Unterstützung scheint es zu liegen, dass PHP 6 in letzter Zeit nur schwer in die Gänge gekommen ist. Zumindest geht die Entwicklung für PHP 5.4 schon mal los.

In Pocket speichern vorlesen Druckansicht 249 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Ein neues PHP unter der Versionsnummer 6 ist schon lange im Gespräch, viele der für dieses Release geplanten Funktionen landeten allerdings dann bereits in PHP 5.3, das im vergangenen Sommer erschien. Auch wenn eine frühere Meldung der PHP-Entwickler darauf schließen ließ, dass PHP 6.0 eine sehr hohe Priorität genieße, scheint es noch etwas länger zu dauern, bis etwas Sichtbares gezeigt werden kann. Zumindest wurde jetzt schon mal der PHP-5.4-Entwicklungszweig eröffnet.

Für PHP 6 diskutieren die Entwickler, welche Form der UTF-Unterstützung sie wirklich wollen. Ideen gehen zum Beispiel in die Richtung, String-Klassen zu verwenden, die String-Operationen in Unicode und in Binärcode umhüllen (wrap), ohne allzu sehr in die Engine eingreifen zu müssen. Dafür spricht laut Johannes Schlüter, einer der PHP-Entwickler, dass dadurch der viel gescholtenen Inkonsistenz der String-APIs entgegen gewirkt werde, ohne mit dem alten Code brechen zu müssen. Denn neuer Code könne die neuen Klassen benutzen, alter die bisherigen Funktionen.

Ursprünglich war geplant, UTF-16 als Standard-Codierung innerhalb der Engine zu verwenden. Laut Schlüter habe man darauf zurückgreifen wollen, da PHP 6 die ICU-Bibliothek (International Components for Unicode) verwenden sollte, die String-Funktionen für diese Codierung enthält. Würde man UTF-16 als Zeichencodierung für PHP 6 einsetzen, bedeute das, den Skriptcode und alle ein- und ausgehenden Daten mit anderer Codierung (vorrangig UTF-8) nach UTF-16 und wieder zurück konvertieren zu müssen. Denn UTF-16 wird relativ wenig verwendet, UTF-8 hat sich unter anderem bei den aktuellen Betriebssystemen als Standardcodierung für Unicode etabliert.

UTF-16 würde zum einen eine übermäßig komplexe Implementierung bedeuten, sowie mehr CPU-Zeit und Speicher benötigen, da die Codierung in vielen Fällen doppelt so viele Bytes braucht wie UTF-8. Zum anderen wäre die neue Entwicklung nicht mehr rückwärtskompatibel, was manuelle Eingriffe in vorhandenen PHP-Code erfordere. Das sind Schlüter zufolge alles Gründe dafür, dass viele an der PHP-Entwicklung Beteiligte bislang nicht gewillt waren, den Hauptentwicklungspfad (trunk) als zentralen Entwicklungsbaum zu nutzen. Auf jeden Fall haben die Entwickler schon mal beschlossen, dass der Subversion-Trunk auf dem aktuellen PHP 5.3 aufsetzen und die Funktionen des alten Entwicklungspfads mit den neuen dort verschmelzen sollen. (ane)