• IT-Karriere:
  • 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. unimed Abrechnungsservice für Kliniken und Chefärzte GmbH, Wadern
  2. Zentrum Bayern Familie und Soziales, München, Bayreuth

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.

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


Anzeige
Hardware-Angebote
  1. täglich neue Deals bei Alternate.de
  2. (reduzierte Überstände, Restposten & Co.)

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
       


Looking Glass Holo-Display angesehen (CES 2020)

Der Looking Glass 8K ist ein Monitor, der mittels Lichtfeldtechnologie 3D-Inhalte als Hologramm anzeigen kann. Golem.de hat sich das Display auf der CES 2020 genauer angeschaut.

Looking Glass Holo-Display angesehen (CES 2020) Video aufrufen
Geforce Now im Test: Nvidia nutzt einzigartige CPU und GPU
Geforce Now im Test
Nvidia nutzt einzigartige CPU und GPU

Wer mit Nvidias Geforce Now spielt, bekommt laut Performance Overlay eine RTX 2060c oder RTX 2080c, tatsächlich aber werden eine Tesla RTX T10 als Grafikkarte und ein Intel CC150 als Prozessor verwendet. Die Performance ist auf die jeweiligen Spiele abgestimmt, vor allem mit Raytracing.
Ein Test von Marc Sauter

  1. Cloud Gaming Activision Blizzard zieht Spiele von Geforce Now zurück
  2. Nvidia-Spiele-Streaming Geforce Now kostet 5,49 Euro pro Monat
  3. Geforce Now Nvidias Cloud-Gaming-Dienst kommt noch 2019 für Android

Videostreaming: Was an Prime Video und Netflix nervt
Videostreaming
Was an Prime Video und Netflix nervt

Eine ständig anders sortierte Watchlist, ein automatisch startender Stream oder fehlende Markierungen für Aboinhalte: Oft sind es nur Kleinigkeiten, die den Spaß am Streaming vermiesen - eine Hassliste.
Ein IMHO von Ingo Pakalski

  1. WhatsOnFlix Smartphone-App für bessere Verwaltung der Netflix-Inhalte
  2. Netflix Staffel-2-Trailer zeigt Cyberpunk-Welt von Altered Carbon
  3. Videostreaming Netflix musste Night of the Living Dead entfernen

Frauen in der Technik: Von wegen keine Vorbilder!
Frauen in der Technik
Von wegen keine Vorbilder!

Technik, also auch Computertechnik, war schon immer ein männlich dominiertes Feld. Das heißt aber nicht, dass es in der Geschichte keine bedeutenden Programmiererinnen gab. Besonders das Militär zeigte reges Interesse an den Fähigkeiten von Frauen.
Von Valerie Lux

  1. Bewerber für IT-Jobs Unzureichend qualifiziert, zu wenig erfahren oder zu teuer
  2. Männer und Frauen in der IT Gibt es wirklich Chancengleichheit in Deutschland?
  3. HR-Analytics Weshalb Mitarbeiter kündigen

    •  /