Tag-Archive for » PHP 7.1 «

JetBrains aktualisiert PhpStorm und PyCharm

Beim dem tschechischen Toolhersteller JetBrains startet traditionell im November die Update-Welle über alle Entwicklungsumgebungen hinweg.

Auf das für die Webentwicklung ausgelegte WebStorm 2017.3 folgen nun PyCharm 2017.3 für Python- und PhpStorm 2017.3 für PHP-Entwickler.

Auf das frische Release des Flaggschiffs IntelliJ IDEA muss man noch ein wenig warten, es dürfte sich aber außer durch Bugfixes kaum vom Release Candidate unterscheiden, der schon seit Mitte November verfügbar ist.

Nullable Types aus PHP 7.1 und REST-Client-Interface

PhpStorm kommt wie schon in den vergangenen beiden Jahren kurz vor dem Release der neuen Sprachversion heraus, so dass die für PHP 7.2 erwarteten Neuerungen dort noch nicht berücksichtigt werden.

Dafür bietet die Entwicklungsumgebung aber erstmals den vollständigen Support für die in PHP 7.1 eingeführten Nullable Types. Die beiden Refactoring-Funktionen Extract Interface und Change Signature sind darauf vorbereitet und bewahren die Nullability statt wie bisher (falsche) Fehlermeldungen herauszugeben.

Kein Support mehr für PHP 5

Am heutigen 1. Januar 2017 hat PHP 5.6 als letzte 5er-Version der beliebten Script-Sprache das Ende seiner aktiven Supportphase erreicht: Die aktuelle Version PHP 5.6.30 wird das letzte reguläre PHP-5-Release sein, das herausgekommen ist. Danach gibt es nur noch das neueste Haupt-Release PHP 7 bzw. PHP 7.1.

An PHP 5 wird auch ab sofort nicht mehr weiter entwickelt. Allerdings versprechen die Entwickler, kritische Sicherheitslücken in PHP 5.6 noch bis Ende 2019 zu stopfen – aber spätestens zu diesem Zeitpunkt sollte man auf eine 7er-Version der Scriptsprache aufgestiegen sein.

Die Web-Statistiker von W3tech fanden PHP 7 bisher nur auf 2,5% der untersuchten Internetseiten, die PHP nutzen. PHP 5.6 wird auf 21% der PHP-Sites eingesetzt, der Rest verteilt sich auf ältere, nicht mehr gepflegte PHP-Versionen. Nach Angaben von W3tech nutzen über 80% der 10 Millionen populärsten Websites PHP.

Etwas freundlicher kommt die Statistik von packagist.org, dem Standard-Repository des PHP-Package-Managers Composeherüber: Hier kamen PHP 7.0 und 7.1 im November 2016 zusammen zumindest auf gut 36% der Zugriffe und PHP 5.6 auf 37%. Aber leider erfolgen auch bei packagist.org ein Viertel aller Zugriffe mit veralteten und nicht mehr supporteten PHP-Versionen.

Rückgabe in PHP 7.1

php7-1Außer den internen Veränderungen, die die beliebte Programmiersprache deutlich beschleunigt haben, brachte Version 7 von PHP viel Neues im Umgang mit dem Typsystem der Sprache.

Mit dem ersten großen Sprachupdate PHP 7.1 erweiterten die Entwickler PHP um Funktionen, die man so auch aus anderen Sprachen kennt. Dazu gehört unter anderem beispielsweise der explizite Verzicht auf einen echten Rückgabewert.

Nirwana-Rückgabe: Nullen oder Nichts

Denn jetzt gehört zu den sogenannten Typehints auch das Schlüsselwort void. Der Typehint zum Beispiel für den Datentyp int gibt ja auch an, dass der Typ des betreffenden Rückgabewerts ein Integer (Ganzzahl) sein soll. Genauso gibt in PHP 7.1 der Typehint void an, dass die Funktion eben nichts zurückgibt, sondern ausschließlich prozedural arbeitet.

Wie in den Sprachen C und C++ kann aus einer Methode durch die Angabe von return; zurückgekehrt werden. Auch auf diese Angabe kann verzichtet werden. Sinnvoll sei die Verwendung von void vor allem zur Dokumentation und zur Fehlerüberprüfung. Es macht in jedem Fall deutlich, “dass eine Funktion eine Aktion ausführt und kein Ergebnis erzeugt”.

Bis jetzt hatte PHP unter bestimmten Umständen Probleme bei Rückgabewerten, die keinen Standardwert haben, weshalb das Team eine einheitliche Syntax eingeführt hat, um zu zeigen, dass der Wert auch null sein kann. Dies ist ab der Version 7.1 für alle erlaubten Typen möglich, indem den Typen ein Fragezeichen vorangestellt ist, also zum Beispiel ?int.

Iterationen und Konstanten

Als neuer Pseudotyp ist das Keyword iterable neu hinzugekommen. Bisher konnte man keinen Typ für iterierbare Rückgaben festlegen und musste tricksen, wenn man eine Funktion innerhalb einer Foreach-Schleife nutzen wollte.

Auch aus dem Umfeld von C und C++ kommt die neue Zugriffsmodifikation, die neben Funktionen jetzt auch für Klassenkonstanten genutzt werden kann. Das Team löse damit eine bisher bestehende Inkonsistenz recht einfach auf. Als Schlüsselworte dazu kann man publicprotected und private nutzen. Konstanten, die ohne eines dieser Schlüsselworte deklariert werden, sind wie schon bisher immer public.