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. IT-Leiter (m/w/d)
    Hays AG, Nürnberg
  2. Software Engineer / Systemberater IT (m/w/d)
    primion Technology GmbH, verschiedene Standorte (Home-Office)
Detailsuche

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.

Golem Akademie
  1. Webentwicklung mit React and Typescript: virtueller Fünf-Halbtage-Workshop
    6.–10. Dezember 2021, Virtuell
  2. First Response auf Security Incidents: Ein-Tages-Workshop
    4. März 2022, Virtuell
Weitere IT-Trainings

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.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


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 :)



Aktuell auf der Startseite von Golem.de
Bald exklusiv bei Disney+
Serien verschwinden aus Abos von Netflix und Prime Video

Acht Serienklassiker gibt es bald nur noch exklusiv bei Disney+ im Abo. Dazu gehören Futurama, Family Guy und 24.
Von Ingo Pakalski

Bald exklusiv bei Disney+: Serien verschwinden aus Abos von Netflix und Prime Video
Artikel
  1. Edge-Browser: Microsoft will Installation von Chrome verhindern
    Edge-Browser
    Microsoft will Installation von Chrome verhindern

    Microsoft intensiviert sein Vorgehen gegen andere Browser: Vor der Installation von Chrome wird Edge übertrieben gelobt.

  2. Samsung Galaxy Tab S7 FE bei Amazon zum Sparpreis
     
    Samsung Galaxy Tab S7 FE bei Amazon zum Sparpreis

    Das hochwertige Tablet von Samsung ist bei Amazon während der Last Minute Angebote um 135 Euro reduziert. Außerdem: Apple und die Galaxy Watch 3.
    Ausgewählte Angebote des E-Commerce-Teams

  3. Pixel Watch: Google will 2022 eine eigene Smartwatch bringen
    Pixel Watch
    Google will 2022 eine eigene Smartwatch bringen

    Die erste Google-Smartwatch soll preislich mit der Apple Watch konkurrieren.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Saturn-Advent: Toshiba Canvio 6TB 88€ • KFA2 Geforce RTX 3070 OC 8GB 1.019€ • Netgear günstiger (u. a. 5-Port-Switch 16,89€) • Norton 360 Deluxe 2022 18,99€ • Gaming-Monitore zu Bestpreisen (u. a. Samsung G3 27" FHD 144Hz 219€) • Spiele günstiger (u. a. Hades PS5 15,99€) [Werbung]
    •  /