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. DATEV eG, Nürnberg
  2. Württembergische Versicherung AG, Stuttgart

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
Top-Angebote
  1. mit Gutschein: ASUSZONE (u. a. VivoBook 15.6" FHD mit i3-5005U/8 GB/128 GB für 270,74€ statt...
  2. (u. a. Canon EOS 200D mit Objektiv 18-55 mm für 477€)
  3. 12,49€
  4. 219€ + Versand (Vergleichspreis 251€)

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
       


Honor 10 gegen Oneplus 6 - Test

Das Honor 10 unterbietet den Preis des Oneplus 6 und bietet dafür ebenfalls eine leistungsfähige Ausstattung.

Honor 10 gegen Oneplus 6 - Test Video aufrufen
Hasskommentare: Wie würde es im Netz aussehen, wenn es uns nicht gäbe?
Hasskommentare
"Wie würde es im Netz aussehen, wenn es uns nicht gäbe?"

Hannes Ley hat vor rund anderthalb Jahren die Online-Initiative #ichbinhier gegründet. Die Facebook-Gruppe schreibt Erwiderungen auf Hasskommentare und hat mittlerweile knapp 40.000 Mitglieder. Im Interview mit Golem.de erklärt Ley, wie er die Idee aus dem Netz in die echte Welt bringen will.
Ein Interview von Jennifer Fraczek

  1. Nutzungsrechte Einbetten von Fotos muss nicht verhindert werden
  2. Bundesnetzagentur UKW-Abschaltung abgewendet
  3. Drupalgeddon 2 115.000 Webseiten mit Drupallücken übernommen

Indiegames-Rundschau: Schiffbruch, Anime und viel Brummbrumm
Indiegames-Rundschau
Schiffbruch, Anime und viel Brummbrumm

Gas geben, den weißen Hai besiegen und endlich die eine verlorene Socke wiederfinden: Die sommerlichen Indiegames bieten für jeden etwas - besonders fürs Spielen zu zweit.
Von Rainer Sigl

  1. Indiegames-Rundschau Schwerelose Action statt höllischer Qualen
  2. Indiegames-Rundschau Kampfkrieger und Abenteuer in 1001 Nacht
  3. Indiegames-Rundschau Mutige Mäuse und tapfere Trabbis

Razer Huntsman im Test: Rattern mit Infrarot
Razer Huntsman im Test
Rattern mit Infrarot

Razers neue Gaming-Tastatur heißt Huntsman, eine klare Andeutung, für welchen Einsatzzweck sie sich eignen soll. Die neuen optomechanischen Switches reagieren schnell und leichtgängig - der Geräuschpegel dürfte für viele Nutzer aber gewöhnungsbedürftig sein.
Ein Test von Tobias Költzsch

  1. Huntsman Razer präsentiert Tastatur mit opto-mechanischen Switches
  2. Razer Abyssus Essential Symmetrische Gaming-Maus für Einsteiger
  3. Razer Nommo Chroma im Test Blinkt viel, klingt weniger

    •  /