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. Senior Network and Security Engineer (f/m/d)
    EMBL Heidelberg, Heidelberg
  2. SAP Projektleiter (m/w/d) in der Operative IT/AMS
    Dürr IT Service GmbH, Bietigheim-Bissingen
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 Karrierewelt
  1. Adobe Photoshop für Social Media Anwendungen: virtueller Zwei-Tage-Workshop
    14./15.12.2022, virtuell
  2. Green IT: Praxisratgeber zur nachhaltigen IT-Nutzung (virtueller Ein-Tages-Workshop)
    14.03.2023, 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
Tesla-Fabrik
In Grünheide soll "totales Chaos" herrschen

Die Tesla-Fabrik in Grünheide hinkt ihren Produktionszielen noch weit hinterher. Es gibt zu wenig Personal oder die Mitarbeiter kündigen wieder.

Tesla-Fabrik: In Grünheide soll totales Chaos herrschen
Artikel
  1. Elbit Systems Deutschland: Neue Bundeswehr-Funkgeräte lösen Retrogeräte von 1982 ab
    Elbit Systems Deutschland
    Neue Bundeswehr-Funkgeräte lösen Retrogeräte von 1982 ab

    Vor rund einem Jahr hat das Beschaffungsamt der Bundeswehr für 600 Millionen Euro Tausende Funkgeräte aus dem Jahr 1982 nachbauen lassen. Nun werden ganz neue angeschafft.

  2. Europäischer Rat: Einigung über Bargeldobergrenze von 10.000 Euro
    Europäischer Rat
    Einigung über Bargeldobergrenze von 10.000 Euro

    Der Europäische Rat hat sich auf eine Bargeldobergrenze von 10.000 Euro verständigt. Auch Kryptowährungen sollen streng reguliert werden.

  3. Angespielt: Diablo 4 wird brutal, makaber und ein bisschen eklig
    Angespielt
    Diablo 4 wird brutal, makaber und ein bisschen eklig

    Open-World-Freiheiten, dynamische Events und eine geteilte Spielwelt: Golem.de hat Diablo 4 angespielt und mit den Entwicklern gesprochen.
    Von Olaf Bleich

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 • PS5 bei Amazon bestellbar • Tiefstpreise: Asus RTX 4080 1.689,90€, MSI 28" 4K 579€, Roccat Kone Pro 39,99€, Asus RTX 6950 XT 939€ • Alternate: Acer Gaming-Monitor 27" 159,90€, Razer BlackWidow V2 Mini 129,90€ • 20% Extra-Rabatt bei ebay • Amazon Last Minute Angebote [Werbung]
    •  /