Abo
  • IT-Karriere:

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. SEG Automotive Germany GmbH, Stuttgart-Weilimdorf
  2. ING-DiBa AG, Nürnberg, Frankfurt

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. 16,95€
  2. 41,95€
  3. (u. a. Xbox Live Gold 12 Monate 45,99€)
  4. ab 59,98€ (mit Vorbesteller-Preisgarantie)

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
       


Backup per Band angesehen

Das Rattern des Roboterarms und Rauschen der Klimaanlage: Golem.de hat sich Bandlaufwerke in Aktion beim Geoforschungszentrum Potsdam angeschaut. Das Ziel: zu erfahren, was die 60 Jahre alte Technik noch immer sinnvoll macht.

Backup per Band angesehen Video aufrufen
Black Mirror Staffel 5: Der Gesellschaft den Spiegel vorhalten
Black Mirror Staffel 5
Der Gesellschaft den Spiegel vorhalten

Black Mirror zeigt in der neuen Staffel noch alltagsnäher als bisher, wie heutige Technologien das Leben in der Zukunft katastrophal auf den Kopf stellen könnten. Dabei greift die Serie auch aktuelle Diskussionen auf und zeigt mitunter, was bereits im heutigen Alltag schiefläuft - ein Meisterwerk! Achtung, Spoiler!
Eine Rezension von Tobias Költzsch

  1. Streaming Netflix testet an Instagram erinnernden News-Feed
  2. Start von Disney+ Netflix wird nicht dauerhaft alle Disney-Inhalte verlieren
  3. Videostreaming Netflix will Zuschauerzahlen nicht länger geheim halten

Digitaler Knoten 4.0: Auto und Ampel im Austausch
Digitaler Knoten 4.0
Auto und Ampel im Austausch

Auf der Autobahn klappt das autonome Fahren schon recht gut. In der Stadt brauchen die Autos jedoch Unterstützung. In Braunschweig testet das DLR die Vernetzung von Autos und Infrastruktur, damit die autonom fahrenden Autos im fließenden Verkehr links abbiegen können.
Ein Bericht von Werner Pluta

  1. LTE-V2X vs. WLAN 802.11p Wer hat Recht im Streit ums Auto-WLAN?
  2. Vernetztes Fahren Lobbyschlacht um WLAN und 5G in Europa
  3. Gefahrenwarnungen EU setzt bei vernetztem Fahren weiter auf WLAN

Webbrowser: Das Tracking ist tot, es lebe das Tracking
Webbrowser
Das Tracking ist tot, es lebe das Tracking

Die großen Browserhersteller Apple, Google und Mozilla versprechen ihren Nutzern Techniken, die das Tracking im Netz erschweren sollen. Doch das stärkt Werbemonopole im Netz und die Methoden verhindern das Tracking nicht.
Eine Analyse von Sebastian Grüner

  1. Europawahlen Bundeszentrale will Wahl-O-Mat nachbessern
  2. Werbenetzwerke Weitere DSGVO-Untersuchung gegen Google gestartet
  3. WLAN-Tracking Ab Juli 2019 will Londons U-Bahn Smartphones verfolgen

    •  /