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. Bosch Gruppe, Stuttgart
  2. Hays AG, Hessen

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
Blu-ray-Angebote
  1. 34,99€

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
       


ZTE Axon 9 Pro - Hands on (Ifa 2018)

Das Axon 9 Pro ist ZTEs erstes Smartphone nach der Beinahe-Pleite. In einem ersten Hands on hat uns das Gerät gut gefallen - besonders bei dem Preis von 650 Euro.

ZTE Axon 9 Pro - Hands on (Ifa 2018) Video aufrufen
Lenovo Thinkpad T480s im Test: Das trotzdem beste Business-Notebook
Lenovo Thinkpad T480s im Test
Das trotzdem beste Business-Notebook

Mit dem Thinkpad T480s verkauft Lenovo ein exzellentes 14-Zoll-Business-Notebook. Anschlüsse und Eingabegeräte überzeugen uns - leider ist aber die CPU konservativ eingestellt und ein gutes Display kostet extra.
Ein Test von Marc Sauter und Sebastian Grüner

  1. Thinkpad E480/E485 im Test AMD gegen Intel in Lenovos 14-Zoll-Notebook
  2. Lenovo Das Thinkpad P1 ist das X1 Carbon als Workstation
  3. Thinkpad Ultra Docking Station im Test Das USB-Typ-C-Dock mit robuster Mechanik

Sky Ticket mit TV Stick im Test: Sky kann's gut, Netflix und Amazon können es besser
Sky Ticket mit TV Stick im Test
Sky kann's gut, Netflix und Amazon können es besser

Gute Inhalte, aber grauenhafte Bedienung: So war Sky Ticket bisher. Die neue Version macht vieles besser, und mit dem Sky Ticket Stick lässt sich der Pay-TV-Sender kostengünstig auf den Fernseher bringen. Besser geht es aber immer noch.
Ein Test von Ingo Pakalski

  1. Videostreaming Wiederholte Sky-Ausfälle verärgern Kunden
  2. Sky Ticket TV Stick Sky verteilt Streamingstick de facto kostenlos
  3. Videostreaming Neues Sky Ticket für Android und iOS verspätet sich

iPhone Xs, Xs Max und Xr: Wer unterstützt die eSIM in den neuen iPhones?
iPhone Xs, Xs Max und Xr
Wer unterstützt die eSIM in den neuen iPhones?

Apples neue iPhones haben neben dem Nano-SIM-Slot eine eingebaute eSIM, womit der Konzern erstmals eine Dual-SIM-Lösung in seinen Smartphones realisiert. Die Auswahl an Netzanbietern, die eSIMs unterstützen, ist in Deutschland, Österreich und der Schweiz aber eingeschränkt - ein Überblick.
Von Tobias Költzsch

  1. Apple Das iPhone Xr macht's billiger und bunter
  2. Apple iPhone Xs und iPhone Xs Max sind bierdicht
  3. Apple iPhones sollen Stiftunterstützung erhalten

    •  /