Kommende Neuerungen in PHP6

Wie letzte Woche im Beitrag zur Zukunft von PHP angekündigt beschäftigen wir uns diese Woche mit PHP6.
Trotz der vermeintlichen Gründe erst mal überhaupt (gezwungener Maßen) auf PHP5 umzusteigen und dann auch erstmal dabei zu bleiben, hier nun eine Recherche der Neuerungen in PHP6. Was erwartet uns also in PHP6, was sind neue Features, wo gibt es Inkompatibilitäten zu PHP5 und was ist überhaupt schon offiziell, was ist nur angekündigt oder eine Vermutung:

Zunächst entnommen von php::bar eine frühe Liste der Neuerungen in PHP6:

  • Unicode Unterstützung im Gegensatz zum bisherigen Binär-Strings Verfahren
  • Einführen von Namespaces (Namensräume)
  • neue Datumsroutinen für Plattformen mit Zeiten vor 1970
  • register_globals wird abgeschafft
  • magic_quote ebenfalls
  • auch der safe_mode wird ausgemustert
  • zuschaltbarer Input-Filter
  • entfernen sämtlicher veralteter Funktion (deprecated in PHP5)
  • Integration eines Opcode-Caches, also eines Zwischenspeichers für PHP-Skripts z.B. PECL/APC
  • Parameterreihenfolge vereinheitlichen ( $needle und $haystack in diversen str*()-Funktionen )

In einem etwas neuern Bericht über PHP6 in der Internet Professionell findet man zusätzlich:

  • Zend-Engine-1-Kompatibilität entfernen
  • break Anweisung um ein Label erweitern (als Art goto-Konstrukt)
  • der konditionale Operator (Bedingung ? Wert : Alternativwert) soll auch mit leerem Wert verwendet werden können (Alternative zum if-set-or() Operator)
  • PECL-Pakete xmlReader und xmlwriter sollen fest integriert werden
  • POSIX-reguläre Ausdrücke (ereg* Funktionen) sollen abgeschafft werden (Auslagerung in eine PECL Erweiterung)
  • mime_magic wird durch das PECL Paket fileinfo ersetzt

Im Visualhype Blog lässt sich dann noch lesen, dass in PHP6

  • die super globalen Variablen $HTTP_*_VARS entfernt werden
  • Seitens der Datenbanken soll alles aus dem Kern entfernt werden und auf Module abgelegt werden

Eine weitere wichtige Quelle zu PHP6 sind die Minutes PHP Developers Meeting aus Paris vom 11. und 12. November 2005
Hier lässt sich zusätzlich nun finden:

  • freetype 1 und GD 1 werden nicht mehr unterstützt
  • non-PDO DB extensions sollen irgendwann mal vom Kern in PECL ausgelagert werden
  • ansosnten ereg raus, fileinfo rein und bei Zeiten weitere Überlegungen starten ;-)
  • Eine Änderung der Parameterreihenfolge einiger Funktionen ($needle, $haystack) ist hier abgelehnt!
  • die Funktione microtime() soll nun immer ein float zurückgeben, nicht nur per microtime(true)

Am 8. bis 11. Oktober 2007 fand nun die ZendCon ‘07 statt, eine von Zend organisierte Konferenz von und für PHP Entwickler. Von dort berichtet Stefan Priebsch, dass einige Features aus dem PHP6 Plan bereits in PHP 5.3 kommen werden und es bei der Unicode Umsetzung wohl ein paar Schwierigkeiten gibt.

Jetzt haben wir uns vor kurzem einmal daran gemacht einen PHP6 Snapshot herunterzuladen und etwas zu durchforsten. Für folgende Dinge konnten wir entnehmen, dass sie definitiv in Zukunft in PHP umgesetzt, wenn nicht schon integriert sind:

  • Ganz vorne mit dabei und oft genug bestätigt, PHP6 wird komplett Unicode unterstützen
  • Die Einführung von Namespaces (vgl. auch php-blogger.de sogar schon ab PHP 5.3)
  • Auch schon in PHP5 dabei, die angekündigten Input Filter
  • Es werden wohl tatsächlich einige Funktions Aliase und Reihenfolgen von Argumenten geändert zumindest ist in der README.UPDATING_TO_PHP6 Datei dafür ein noch leere Kapitel reserviert. Beim testen mit “verdächtigen Funktionen” array_search($needle, $haystack) und strpos($haystack, $needle) waren aber (noch) keine Neuerungen vorhanden.
  • Ebenfalls der README.UPDATING_TO_PHP6 Datei zu entnehmen ist, dass Register Globals und die $HTTP_*_VARS abgeschafft sind und auch im Test waren diese Arrays nicht mehr da.
  • Auch ein leeres Kapitel ist den Magic Quotes gewidmet, ob abgeschafft oder verändert ist abzuwarten in der default php.ini fehlt jedenfalls alles was früher zu magic_quotes gehört hatte
  • Es wird nur noch das PHP5/PHP6 object model geben der Zend Engine 1 compatibility mode ist abgeschafft
  • die dl Funktion ist nur noch verfügbar im CLI, CGI and EMBED SAPI modus
  • Das error_reporting E_ALL enthält nun auch E_STRICT
  • Unter dem Punkt References heißt es dann noch “Derick plans to clean the reference mess in php6″
  • Der TODO List entnehme ich, dass geplant ist foreach ($array as $k => list($a, $b)) Syntax für multi dimensionale Arrays zu ermöglichen
  • Des weiteren sind einige Kern Änderungen/Optimierungen in Planung(IPv6, SAPI CGI/1.1 konform machen, Warnings ausgeben, wenn eine plattformspezifisch nicht implementierte Funktion aufgerufen wird, Native large number support,…)
  • Ob der if-set-or Operator(zum bequemen setzen evtl. leerer Variablen) nun doch kommt ist fraglich aber man sucht wohl noch nach einem Namen… was aber schon geht ist statt $var = isset($notset) ? $notset : “default”; geht jetzt $var = isset($notset) ?: “default”;
  • die ereg Funktionen sind nach wie vor mit dabei, fileinfo ist nicht integriert und mime_magic scheint aber bereits entfernt.

Bisher nichts weiter gefunden, und damit wohl eher eine Wunsch- bzw. Gerüchte Liste um PHP6 habe ich zu:

  • dem goto-Konstrukt der Form “break test;”, wobei der Code dann an der Stelle test: weitergeführt werden soll existiert (noch) nicht
  • den neue Datumsroutinen
  • immer Exceptions statt fatal Errors (bzw. bereits abgelehnt in Minutes PHP Developers Meeting)
  • in try/catch Blöcken den finally Operator einführen

Soweit mal unsere Erkenntnisse zu PHP6, noch ist ja viel Zeit, denn mit einer Veröffentlichung von PHP6 kann man wohl frühestens Ende 2008 Anfang 2009 rechnen.
Dies belegt auch die neuste Aussage von Zend-Gründer Zeev Suraski im 2. Teil des Interviews auf golem.de wo unter anderem auch ein ganz neuer Punkt zur Sprache kam, die Entwicklung von Ajax-Tools, die ähnlich dem Google Web Toolkit eine Entwicklung von Ajax Anwendung in PHP ermöglichen sollen und dann in Javascript umgewandelt werden sollen.

Hier nun noch einige andere Sammlungen und Beiträge zu PHP6
PHP6 im Weblog von Alex Kanub
Änderungen in PHP 6 auf Visualhype
Know-how: PHP 6: Alt und neu PHP 6 – ein Ausblick
Interview mit Zend-Gründer Zeev Suraski (Teil 1) auf golem.de
Interview mit Zend-Gründer Zeev Suraski (Teil 2) auf golem.de
Einführung zu PHP 6

Bücher zu PHP und auch bereits PHP6

Wenn dir dieser Beitrag gefällt, lade den Autor doch mal zu einem Drink ein ;-)

Broadcast us
  • Yigg
  • Webnews.de
  • Digg
  • MisterWong
  • del.icio.us
  • Technorati
  • DZone
  • Facebook
  • Google Bookmarks
  • Reddit
  • StumbleUpon
  • TwitThis

Tags: , , ,

4 Responses

  1. [...] and voting. We believe in rough consensus and running code." David D. Clark, MIT « Kommende Neuerungen in PHP6 » zur Blog Startseite [...]

  2. [...] > Alles im Leben wird teurer (Stichwort: Inflation). Warum zur > Abwechselung nicht auch die Telekommunikationsgebühren? Die sind in > den > [...]

  3. Hallo !
    In meinem Shopsystem wird glaube ich mit PHP 5 gearbeitet, oder was man sonst damit macht. Weis einer ob das 6er nennenswerte Verbesserungen bringen würde ?
    Gruß Axel

  4. [...] wir in den letzten Tagen durch unsere Recherche zu Neuerungen in PHP6 und den näheren Details zu einzelnen Features in PHP6 Interesse an PHP6 geweckt haben, wollen wir [...]

Leave a Reply