Abo
  • IT-Karriere:

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. Camelot ITLab GmbH, Mannheim, Köln, München
  2. Conditorei Coppenrath & Wiese KG, Mettingen

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
Spiele-Angebote
  1. 2,99€
  2. 4,49€
  3. 12,99€
  4. 48,49€

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
       


Sony Xperia 1 - Test

Das Xperia 1 eignet sich dank seines breiten OLED-Displays hervorragend zum Filmeschauen. Im Test zeigt Sonys neues Smartphone aber noch weitere Stärken.

Sony Xperia 1 - Test Video aufrufen
Erneuerbare Energien: Die Energiewende braucht Wasserstoff
Erneuerbare Energien
Die Energiewende braucht Wasserstoff

Kein anderes Element ist so universell und dabei simpel aufgebaut wie Wasserstoff und das energiereiche Gas lässt sich aus fast jedem Energieträger gewinnen. Genauso vielseitig gestaltet sich seine Nutzung.
Ein Bericht von Jan Oliver Löfken

  1. Strom-Boje Mittelrhein Schwimmende Kraftwerke liefern Strom aus dem Rhein
  2. Speicherung von Überschussstrom Wasserstoff soll bei Engpässen helfen
  3. Energiewende DLR-Forscher bauen Kohlekraftwerke zu Stromspeichern um

iPad OS im Test: Apple entdeckt den USB-Stick
iPad OS im Test
Apple entdeckt den USB-Stick

Zusammen mit iOS 13 hat Apple eine eigene Version für seine iPads vorgestellt: iPad OS verbessert die Benutzung als Tablet tatsächlich, ein Notebook-Ersatz ist ein iPad Pro damit aber immer noch nicht. Apple bringt aber endlich Funktionen, die wir teilweise seit Jahren vermisst haben.
Ein Test von Tobias Költzsch

  1. Tablets Apple bringt neues iPad Air und iPad Mini
  2. Eurasische Wirtschaftskommission Apple registriert sieben neue iPads
  3. Apple Es ändert sich einiges bei der App-Entwicklung für das iPad

CO2-Emissionen und Lithium: Ist das Elektroauto wirklich ein Irrweg?
CO2-Emissionen und Lithium
Ist das Elektroauto wirklich ein Irrweg?

In den vergangenen Monaten ist die Kritik an batteriebetriebenen Elektroautos stärker geworden. Golem.de hat sich die Argumente der vielen Kritiker zur CO2-Bilanz und zum Rohstoff-Abbau einmal genauer angeschaut.
Eine Analyse von Friedhelm Greis

  1. Ari 458 Elektro-Lieferwagen aus Leipzig kostet knapp 14.000 Euro
  2. Nobe 100 Dreirädriges Retro-Elektroauto parkt senkrecht an der Wand
  3. Protean 360+ Neuer elektrischer Antrieb macht Kleinbusse extrem wendig

    •  /