Menü
Developer

Hip Hop Virtual Machine: Letztes Release für PHP5 erschienen

Mit der Version 3.24 verabschiedet sich die Hip Hop Virtual Machine wie angekündigt von PHP5. Der Nachfolger PHP7 ist nur übergangsweise an Bord, da Facebook verstärkt auf die hauseigene Alternative Hack setzt.

Von
vorlesen Drucken Kommentare lesen
Hip Hop Virtual Machine: Letztes Release für PHP5 erschienen

Facebook hat Version 3.24 der Hip Hop Virtual Machine (HHVM) veröffentlicht. Da sich das Team hinter der virtuellen Maschine für die Skriptsprachen PHP und Hack wie im September 2016 angekündigt vermehrt auf Facebooks Programmiersprache konzentriert, ist das aktuelle Release das letzte mit Quellcode-Kompatibilität zu PHP5. Das bedeutet unter anderem das Aus für PHP5-Extensions ab dem kommenden Release.

Wer nicht zu Hack wechseln möchte, sollte also auf PHP7 umsteigen. Mittelfristig soll die HHVM jedoch ausschließlich mit Facebooks PHP-Alternative Hack funktionieren. Ein Trost mag sein, dass HHVM 3.24 ein LTS-Release ist (Long-Term Support) und damit garantierte Unterstützung sowie Updates bis Januar 2019 genießt. Im selben Zeitrahmen läuft auch der Support für PHP 5.6 aus.

Darüber hinaus bringt die virtuelle Maschine ein paar Ergänzungen, die vor allem die Sprache Hack betreffen. So müssen Referenzen nicht nur bei der Funktions-Deklaration, sondern auch beim Aufruf gekennzeichnet sein, wie folgendes Beispiel aus dem Blog zeigt:

$foo = [3, 1, 2]; 
sort(&$foo);

Passend dazu ist eine aktuelle Version des HHAST-Toolkits erschienen, das den Syntaxbaum von Hack-Dateien verarbeitet. Außerdem lassen sich neuerdings using-Blöcke als Alternativen zu Destruktoren verwenden, um Objekte auf einen eingeschränkten Scope zu beschränken. Als Grundlage dienen die Interfaces IDisposable beziehungsweise IAsyncDisposable. Beim Verlassen des Scope erfolgt der Aufruf der implementierten __dispose()-Funktion.

Für XHP, über das sich XML-Elemente einbinden lassen, die üblicherweise wiederverwendbare HTML-Elemente zur Ausgabe enthalten, gibt es ebenfalls einige Neuerungen. Unter anderem darf die Deklaration @required, die notwendige Attribute kennzeichnet, weder nullable sein, noch einen Standardwert erhalten. Außerdem überschreiben Kindelemente die Attribute der Root-Elemente nicht mehr implizit, sondern nur noch durch explizite Angaben.

Weitere Details lassen sich dem HHVM-Blog entnehmen. Facebooks Hip Hop Virtual Machine ist quelloffen auf GitHub verfügbar. (rme)