Andreas Korthaus: PHP 5.1+ Neuerungen (PDO, Date, XML, Unicode)

Beitrag lesen

Hallo!

Grad habe ich Andi Gutmans Blog-Eintrag zum Release von PHP 5.1-beta1 gelesen und mir gedacht, dass es den ein oder anderen hier ja möglicherweise interessieren könnte.

Die wichtigsten neuen Features von 5.1 sind wohl:

  • PHP Data Objects (PDO): Vereinheitlichung des DB-Zugriffs in PHP
<?php  
$dsn = 'sqlite:/pfad/zur/datenbank'; // analog für mysql, postgresql, oracle, ...  
$dbh = new PDO($dsn);  
  
$result = $dbh->query('SELECT col FROM table');  
  
foreach ($result as $row) {  
    print_r($row);  
}  
?>

Der PHP-Code sieht für jede DB gleich aus, unterscheidet sich lediglich im DSN-String. So wird immer dieselbe, objektorientierte API benutzt (heutige APIs unterscheiden sich teilweise erheblich), und gleichzeitig ist der Code (mindestens) genau so schnell wie mit DB-spezifischen Client-APIs (z.B. mysql_*()...), wobei das bei DB-Zugriff natürlich nicht das wichtigste ist. Es ist keine SQL-Abstraktion wie PEAR::DB, SQL wird nicht angefasst (es geht halt um die Vereinheitlichung/Vereinfachung der API, sowohl für PHP-Programmierer, als auch DB-Extension Programmierer).

Eine Einführung in PDO: http://netevil.org/talks/index.php?t=pdo
PDO-Manual: http://www.php.net/pdo
PDO-Wiki: http://wiki.cc/php/PDO

  • neue Date-Extension: Datum vor 1970 möglich
    (ist aber in dieser Beta-Version noch nicht enthalten)
<?php  
$date = new Date(12,6,1880);  
$date->setDay(13);  
echo $date->getWeekDay();  
echo $date->day;  
echo $date->month;  
?>

mehr Beispiele: http://cvs.php.net/co.php/pecl/date/docs/examples/sample1.php?r=1.2

  • XMLReader: eine IMHO schöne API zum Lesen großer XML-Dateien (evtl. auch XMLWriter)
    Beispiele im CVS: http://cvs.php.net/pecl/xmlreader/examples/
    Übersicht, XML in PHP 5.1: http://php5.bitflux.org/xmloncrack/title.php

  • diverse Performance-Verbesserungen (ich habe Scripte die alleine durch den Austausch von 5.0.4 gegen 5.1-beta1 über 40% schneller liefen! Trifft natürlich nicht auf alle Scripte zu...). In PHP 5.0 wurde mit der ZE2 erstmal alles umgebaut, Ziel war es erstmal die neue OOP zu unterstützen... Patches bzgl. Performance/Optimierung sind dann in 5.1 eingeflossen.

Interessant ist auch, wie es nach PHP 5.1 weitergehen soll. Und zwar soll es in der nächsten Version umfassenden Unicode-Support geben: sehr interessante Präsentation von Andrei Zmievsk. Wird wohl auf ICU basieren, in der Präsentation stehen einige Beispiele wie das dann später aussehen wird. Jedenfalls funktionieren dann so Sachen wie strlen($str) oder $str{1} problemlos mit Unicode. Bin ich mal gespannt, ich denke ich warte noch so lange und fange erst gar nicht an mit den nervigen mb_* Funktionen... ;-)

Da Unicode-Support inzwischen schon zu einem großen Teil implementiert ist, werden diese Änderungen nach dem endgültigen Release von PHP 5.1 ins CVS eingefügt.

Und dann gibts da noch ein (IMHO interessantes) Interview mit Wez Furlong (Podcast, mp3), ist allerdings leider keine gute Qualität.

Naja, vermutlich stellen heute viele Provider noch nichtmal PHP 5.0 zur Verfügung, wobei ich das zumindest in meinem Fall nicht bestätigen kann: Inzwischen bieten alle Provider wo ich PHP-Scripte liegen habe an PHP 5.0 zu verwenden. Und auch mit der Migration hatte ich bisher noch keine Probleme, ich musste kein einziges eigenes Script verändern.  Problematischer sind manchmal größere objektorientierte Bibliotheken, wovon die meisten aber inzwischen auch php5-fähig sein sollten. Inzwischen läuft bei mir so ziemlich alles mit PHP 5.0.

Viele Grüße
Andreas

--
SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/