Abo
  • Services:

PHP.js: PHP-Code im Browser ausführen

Der Webentwickler von Hertzen hat PHP in Javascript nachgebaut, so dass PHP-Code direkt im Browser oder unter Node.js ausgeführt werden kann.

Artikel veröffentlicht am ,
PHP-Code im Browser ausführen
PHP-Code im Browser ausführen (Bild: Niklas von Hertzen)

Bei php.js handelt es sich um eine in Javascript implementierte PHP VM. Die Bibliothek liest PHP-Code ein und wandelt ihn in Javascript um, der dann von der zugehörigen PHP VM ausgeführt wird.

Stellenmarkt
  1. BWI GmbH, München
  2. über experteer GmbH, verschiedene Standorte in Deutschland, Slowakei und Ungarn

Im ersten Schritt wird der PHP-Code in Tokens zerlegt (Tokenizing) und dann im zweiten Schritt in einen Abstrakten Syntaxbaum (AST) verwandelt. Ist die Erzeugung des Syntaxbaums abgeschlossen, wird daraus Javascript-Code erzeugt, der von Niklas von Hertzens PHP VM ausgeführt werden kann. Jeder zusätzliche Code, der innerhalb der VM über eval() oder Lambda-Funktionen ausgeführt wird, durchläuft davor denselben Prozess.

Standardmäßig wird der Code synchron ausgeführt, die Ausgabe ist also sofort lesbar, wenn die Ausführung abgeschlossen ist. Alternativ kann die VM aber auch so eingestellt werden, dass sie in einem Webworker ausgeführt wird, dem dann eine Callbackfunktion übergeben werden muss.

Der auf diesem Weg erzeugte Javascript-Code kann direkt im Browser oder in Node.js ausgeführt werden. Von Hertzen rät aus Sicherheitsgründen aber ausdrücklich davon ab, php.js auf öffentlichen Produktivsystemen einzusetzen. Er sei der erste, so Hertzen, der einräume, dass in php.js noch viele Fehler steckten. Für ihn sei php.js ein spannendes Projekt mit interessanten Herausforderungen. Einen praktischen Nutzen darin sehe er nicht.

Bei der Entwicklung hat von Hertzen einen testgetrieben Ansatz gewählt und sich primär darauf konzentriert, die vom PHP-Team selbst genutzten Unit-Tests einzuhalten. Derzeit besteht php.js 604 von 670 Unit-Tests. Funktionen, für die kein Unit-Test existiert, funktionieren vermutlich nicht, so der Entwickler. Zudem hat er nur einen kleinen Teil der über Module zur Verfügung gestellten Funktionen implementiert.

Php.js ist nicht das erste Projekt, mit dem der Accenture-Mitarbeiter Niklas von Hertzen auf sich aufmerksam macht. Er hat mit html2canvas bereits ein Script geschrieben, mit dem ein Browser Abbilder einer Website erstellen kann und mit WebGL-GTA eine im Browser laufende Version von Grand Theft Auto umgesetzt, die die Dateien des Spiels in ihrem Originalformat per Javascript verarbeitet.



Anzeige
Hardware-Angebote
  1. bei Alternate bestellen

SSD 29. Jul 2012

süß <= ganz einfach: C#, Java, Scala, C++ (also so ziemlich alles andere) Außerdem ist...

SSD 27. Jul 2012

Doch, wo liegt mein Denkfehler?

xUser2 25. Jul 2012

Und dann in einer JS VM ausführen :D http://bellard.org/jslinux/

pythoneer 25. Jul 2012

Die Unfähigkeit richtig zu testen ist beim PHP Team ja legendär :)


Folgen Sie uns
       


Tolino Shine 3 - Hands on

Der Shine 3 ist der neue E-Book-Reader der Tolino-Allianz. Das neue Modell bietet einen kapazitiven Touchscreen und erhält die Möglichkeit, die Farbtemperatur des Displaylichts zu verändern. Der Shine 3 ist für 120 Euro verfügbar.

Tolino Shine 3 - Hands on Video aufrufen
HP Elitebook 840 und Toshiba Tecra X40: Es kann nur eines geben
HP Elitebook 840 und Toshiba Tecra X40
Es kann nur eines geben

Nicht nur Lenovo baut gute Business-Notebooks, auch HP und Toshiba haben Produkte, die vergleichbar sind. Wir stellen je ein Modell der beiden Hersteller mit ähnlicher Hardware gegenüber: das eine leichter, das andere mit überlegenem Akku - ein knapper Gewinner nach Punkten.
Ein Test von Oliver Nickel

  1. Portégé X20W-D-145 Toshiba stellt alte Hardware im flexiblen Chassis vor
  2. Tecra X40-E-10W Toshibas 14-Zoll-Thinkpad-Pendant kommt mit LTE
  3. Dell, HP, Lenovo AMDs Ryzen Pro Mobile landet in allen Business-Notebooks

WLAN-Standards umbenannt: Ein Schritt nach vorn ist nicht weit genug
WLAN-Standards umbenannt
Ein Schritt nach vorn ist nicht weit genug

Endlich weichen die nervigen Bezeichnungen für WLANs chronologisch sinnvollen. Doch die Wi-Fi Alliance sollte noch einen Schritt weiter gehen.
Ein IMHO von Oliver Nickel

  1. Wi-Fi 6 WLAN-Standards werden für besseres Verständnis umbenannt
  2. Wifi4EU Fast 19.000 Kommunen wollen kostenloses EU-WLAN
  3. Berlin Bund der Steuerzahler gegen freies WLAN

Künstliche Intelligenz: Wie Computer lernen
Künstliche Intelligenz
Wie Computer lernen

Künstliche Intelligenz, Machine Learning und neuronale Netze zählen zu den wichtigen Buzzwords dieses Jahres. Oft wird der Eindruck vermittelt, dass Computer bald wie Menschen denken können. Allerdings wird bei dem Thema viel durcheinandergeworfen. Wir sortieren.
Von Miroslav Stimac

  1. Innotrans KI-System identifiziert Schwarzfahrer
  2. USA Pentagon fordert KI-Strategie fürs Militär
  3. KI Deepmind-System diagnostiziert Augenkrankheiten

    •  /