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, Berlin, Strausberg
  2. BWI GmbH, Bonn, Darmstadt, Berlin oder München

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. 482,99€ inkl. Versand (aktuell günstigste GTX 1080)
  2. täglich neue Deals bei Alternate.de
  3. 164,90€ + Versand

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
       


Youtube Music - angeschaut

Wir haben uns das neue Youtube Music angeschaut. Davon gibt es eine kostenlose Version mit Werbeeinblendungen und zwei Abomodelle. Youtube Music Premium ist quasi der Nachfolger von Googles Play Musik. Das Monatsabo für Youtube Music Premium kostet 9,99 Euro.

Youtube Music - angeschaut Video aufrufen
Gesetzesvorschlag: Regierung fordert Duldung privater Ladesäulen
Gesetzesvorschlag
Regierung fordert Duldung privater Ladesäulen

Die Bundesregierung hat ihren Entwurf zur Förderung privater Ladestationen für Elektroautos vorgelegt. Sowohl Mieter als auch Eigentümer erhalten damit einen gesetzlichen Anspruch. Aber es kann sehr teuer werden.
Ein Bericht von Friedhelm Greis

  1. Sono Motors Elektroauto Sion für 16.000 Euro schon 7.000 Mal reserviert
  2. Elektromobilität iEV X ist ein Ausziehelektroauto
  3. Elektroautos Bundesrechnungshof hält Kaufprämie für unwirksam

Galaxy Note 9 im Test: Samsung muss die Note-Serie wiederbeleben
Galaxy Note 9 im Test
Samsung muss die Note-Serie wiederbeleben

Samsung sieht bei der Galaxy-Note- und der Galaxy-S-Serie immer noch unterschiedliche Zielgruppen - mit dem Note 9 verschwimmen die Unterschiede zwischen den Serien für uns aber weiter. Im Test finden wir bis auf den Stift zu wenig entscheidende Abgrenzungsmerkmale zum Galaxy S9+.
Ein Test von Tobias Költzsch

  1. Galaxy Home Samsung stellt smarten Bixby-Lautsprecher vor
  2. Galaxy Watch im Hands on Samsungs neue Smartwatch soll bis zu 7 Tage lang durchhalten
  3. Galaxy Note 9 im Hands On Neues Note kommt mit großem Akku und viel Speicherplatz

Threadripper 2990WX und 2950X im Test: Viel hilft nicht immer viel
Threadripper 2990WX und 2950X im Test
Viel hilft nicht immer viel

Für Workstations: AMDs Threadripper 2990WX mit 32 Kernen schlägt Intels ähnlich teure 18-Core-CPU klar und der günstigere Threadripper 2950X hält noch mit. Für das Ryzen-Topmodell muss aber die Software angepasst sein und sie darf nicht zu viel Datentransferrate benötigen.
Ein Test von Marc Sauter

  1. Threadripper 2990X AMDs 32-Kerner soll mit 4,2 GHz laufen
  2. AMD Threadripper v2 mit 32 Kernen erscheint im Sommer 2018
  3. Raven Ridge AMDs Athlon kehrt zurück

    •  /