Facebook
Twitter
Google+
Kommentare
5

Froscon 2008 – PHP 5.3

Johannes Schlüter, seines Zeichens Release Manager bei PHP 5.3 und im normalen Leben bei Sun beschäftigt. Wer könnte also besser erzählen, was es alles neues in PHP 5.3 zu erleben gibt. Als erstes wurde natürlich verkündig, dass PHP 4 „deprecated“ ist und nicht mehr verwendet wurden soll. Ok das war nicht neu, ist aber trotzdem immer wieder schön zu hören. Obwohl schon sehr viel über 5.3 geschrieben wurde und wahrscheinlich die Hälfte von euch jedes Detail kennt, werde ich trotzdem die wichtigsten Neuerungen zusammenfassen.

Namespaces

Nach langen Diskussionen scheint sich die PHP Gemeinde endlich geeinigt zu haben, wie denn die Verwendung von Namespaces auszusehen hat und ich glaub, ich kann mit der Entscheidung leben. Obwohl ich die Autoload Methode wirklich schätze und ich auch finde, dass sie eine gute Idee ist, helfen Namesspaces einem endlich Klassennamen möglichst kurz zu halten, ohne dabei irgendwelche Konflikte herbei zu schwören. Wer hier gerade keine Ahnung hat, von was ich rede, den kann ich beruhigen, ein Artikel über Namespaces wird in kürze folgen, sobald ich selbst ein wenig mit rumgespielt habe. Ein kleines Beispiel kann denke ich trotzdem nicht schaden:

<?php
require 'MyProject/Db/Connection.php';
use
MyProject::DB;
use
MyProject::DB::Connection as DbConnection;

$x = new MyProject::DB::Connection();
$y = new DB::connection();
$z = new DbConnection();
DB::connect();
?>

In der Connection.php Datei würde ein Namespace angegeben werden:
<?php
namespace MyProject
::DB;

const

CONNECT_OK = 1;
class
Connection { /* ... */ }
function
connect() { /* ... */ }
?>

Die Beispiele habe ich einfach rotzfrech von der php.net Dokumentation genommen.

goto

Lange Zeit von mir befürchtet, jetzt ist es endlich so weit. Die Einführung von goto ist nun an ihrem Ziel. Eigentlich sollte hier hier gar nichts schreiben, da ich glaube, dass man goto soweit wie möglich vermeiden sollte. Es gibt nur eine Handvoll Situationen in dem man goto wirklich nicht vermeiden kann, ohne einen riesigen Umweg zu fahren. Für diese Fälle ist es auch ok! Ansonsten sehe ich keinen Grund, da es neue Chance mit sich bringt auf einer ganz neuen Ebene zu frikeln. Für die OOP, die ich ja gerne betreibe, ist dieses neue Feature auch nicht nützlich. Naja wir werden sehen was passiert, ich prognostiziere nichts gutes. Aber vielleicht gehe ich auch in den Compiler- oder Parserbau und bin dann der größte Fan dieses Sprachkonstruktes.

Error Level

In der neuen PHP Version wurde auch ein Error Level eingeführt. E_DEPRECATED. Dieser Fehler wird immer dann geworfen (sorry Olaf, ich weiß Fehler wirft man nicht), wenn eine Funktion aufgerufen wird, die nicht mehr up-to-date ist und man sie eigentlich nicht mehr verwenden sollte, da sie in einer der nächsten PHP Versionen nicht mehr unterstützt wird.

Meiner Meinung nach ist dies eine gute Idee, da es so wohl um einiges einfacher wird zu einer neuen Version zu migrieren, da man es so peu à peu bewerkstelligen kann. Natürlich sind hier auch die Macher von PHP gefragt, wenn sie nicht rechtzeitig eine Funktion als veraltet markieren, dann hilft der neue Fehlerlevel wenig. Also einfach mal abwarten, was passiert.

phar Support

Phar ist die PHP Antwort auf das java Archivformat JAR. Ab 5.3 unterstützt PHP nativ dieses Dateiformat. Dank eines Streamwrappers kann man so direkt Dateien ansprechen, die mit phar komprimiert wurden.

<?php

file_get_contents(‚phar:/pfad/zum/pharfile.phar/mydata‘);
require
phar:/pfad/zum/pharfile.phar/myscript.php';

?>

Late static binding

Da ich ja bereits im Artikel über Sebastian Bergmanns Vortrag „Understanding the PHP Object Model“ über diese Neuerung gesprochen habe, bin ich einfach mal so frei und lasse dieses Kapitel hier aus.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

Ein Kommentar

  1. Hallo Nils!

    Ich kann nur sagen „Weiter so!“. Deine Seite hat es schon in meine Favoriten geschaft.

    Hab selber erst seit 2002 mit PHP zu tun und OOP war(ist?) für mich „irgendwas Böses“. 😉

    Lumi

    Reply
  2. Mittlerweile ist man ja schlauer, bzw. hat das System verändert, zu meinen Ungunsten:

    use MyProject::DB::Connection as DbConnection;
    wird zu
    use MyProject\DB\Connection as DbConnection;

    und

    namespace MyNameSpace::Subnamespace;
    wird zu
    namespace MyNameSpace\Subnamespace;

    Mfg

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen