PHP 5.4 ist da, und was ist daran jetzt neu?

Die Nachricht über einen Versionssprung bei PHP hin zur Version 5.4 ist gerade mal weniger Tage alt und da stellt sich auch schon die bange Frage ein: Was geht dann beim Update auf die neue Version in auf meiner Website / Forum / Blog oder wie auch immer genutzten Skript nicht mehr?

Die gute Antwort ist:

Wenn man sich bereits beim Umstieg auf PHP 5.3 daran gehalten hat unerwünschte Features zu ersetzen, dann kann mich sich beruhigt zurück lehnen und schauen was die neu hinzugekommenen Features, Klassen, Funktionen, Methoden und die weiteren Änderungen mit sich bringen.

Fangen wir also erst einmal mit den Neuigkeiten an. Eine der interessantesten Neuerungen dürfte die Einführung von: Traits sein. Diese erweitern bisher noch etwas vereinfacht vorhandene Form der Vererbung, bei der objektorientierten Programmierung (OOP), dahingehend, dass es nun möglich ist Methoden in mehreren unterschiedlichen, auch verschiedener Hierarchien von, Klassen zu nutzen. Traits sind genauso wie Klassen aufgebaut müssen aber im Gegensatz dazu nicht instantiiert werden. Eine wie ich denke sehr anschauliche Erläuterung samt Beispiel dazu ist in dem von KingCrunch geschrieben Artikel: PHP5.4: Traits aka “Horizontal Reuse” zu finden.

Ebenfalls neu ist nun auf eine kurze Array Syntax zurückgegriffen werden kann. So kann bei der längeren Schreibweise: $a = array(‚foo‘ => 1, ‚bar‘ => 2); auf array verzichtet werden und schon ist der Code, beim zusätzlichen Wechsel der Klammerpaare, etwas kürzer: $a = [‚foo‘ => 1, ‚bar’=> 2];

Es mag zwar keine große Neuerung sein, dennoch erleichtert es die Arbeit doch ein wenig. Auch gibt es nun die Möglichkeit zum Array dereferencing. Dahinter verbirgt sich einfach ausgedrückt der Zugriff auf einen Wert eines Arrays anhand eines Schlüssels, bei dessen Rückgabe aus einer Methode. Dies sieht in etwa so aus:

Und gibt mir folgendes aus:

Weitere Neuerungen

Für den Einsatz von Uploadfunktionen gibt es nun die Möglichkeit diese in der aktuelle bestehenden Session mit einzubetten und den Status zu überprüfen, was hier: Session Upload Progress (php.net) anschaulich demonstriert wird. Neu ist auch der nun als Standard definierte Zeichensatz utf-8. Musste bisher noch in die Konfiguration eingegriffen werden um diesen zu setzen, so geschieht dies nun von hause aus. Ein wie ich persönlich finde Schritt in die richtige Richtung.

Die komplette Übersicht an neuen Features, Funktionen, Klassen usw. gibt es natürlich auch: Migrating from PHP 5.3.x to PHP 5.4.x (php.net) Auf alle gehe ich an dieser Stelle erst einmal nicht ein.

Recht spannend ist nun aber auch die Liste an nicht mehr vorhandenen Funktionen und Features. Das wird den einen oder anderen Entwickler aufhorchen, und den hoffentlich nur wenige verängstigt drein blicken lassen. Waren in der Version 5.3.x noch einzelne Funktionen nur als deprecated (missbilligt/abgelehnt) gekennzeichnet, so sind diese nun wirklich verschwunden.

Im folgenden nun eine Liste der entfernten Features:

  • Safe Mode
  • register_globals und register_long_arrays
  • Magic Quotes
  • Call-time pass by reference
  • define_syslog_variables()
  • import_request_variables()
  • session_is_registered(), session_register() and session_unregister().

Interessant dürften dabei vor allem die ersten beiden sein und.wer also immer noch auf den Safe Mode und register_globals gesetzt hat sollte nun endlich einmal davon Abstand nehmen. So waren gerade diese Features doch in der Vergangenheit oft das Einfallstor für möglich unbefugte Eingriffe in Applikationen.

Und was gab es sonst noch Neues? Ach ja nach der Version 5.4 endet nun auch der Support von Windows XP und Windows 2003.

Damit beschließe ich meinen ersten Eindruck der neuen PHP-Version und hoffe ich habe den einen oder anderen nicht ganz verschreckt. 😉

Autor: Michael Schüler

Ich befasse mich derzeit verstärkt mit dem Thema Fotografie und bin ebenso als Entwickler im Web unterwegs. Dabei interessieren mich verstärkt Themen wie die Modifikation und Erweiterung von Forensoftware sowie Blogsoftware, wie bspweise WordPress.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.