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.

Anzeige

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.

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.


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 :)

Kommentieren




Anzeige
  1. Leiter Bereich IT (m/w)
    Barmherzige Brüder Trier e.V., Koblenz
  2. Prüfer/-in für die IT-Revision
    Kreissparkasse Tübingen, Tübingen
  3. Solution Architect (m/w)
    Loyalty Partner Solutions GmbH, Frankfurt
  4. Teamleiter (m/w) Datenbankadministration
    HAVI Logistics IS GmbH, Duisburg

 

Detailsuche


Folgen Sie uns
       


  1. Ventus

    Mit der Netzgemeinde gegen den Klimawandel

  2. Offline-Karten-App für Android

    Maps With Me Pro gratis in Amazons App-Shop

  3. Linux-Kernel

    P-States verringern Leistungsaufnahme auf Intel-CPUs

  4. Adobe

    Photoshop Express jetzt auch für Windows 8

  5. Browser

    Firefox blinkt nicht mehr

  6. Tallinn-Manual

    Regierung äußert sich zu Nato-Regeln zum Töten von Hackern

  7. Clark Asay

    Defensive Patente mit freier Software nicht vereinbar?

  8. Massenentlassung

    Überleben von Rapidshare steht infrage

  9. Razer Atrox

    Arcade- und Mod-Controller für die Xbox 360

  10. Opensuse

    Erster Milestone für Opensuse 13.1



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Bundestags-LAN: Rösler will Spiele-Champions
Bundestags-LAN
Rösler will Spiele-Champions

Wirtschaftsminister Rösler bekennt sich bei einer Gaming-Veranstaltung im Bundestag ausdrücklich zu Großproduktionen aus Deutschland - und erzählt, welchen Heimcomputer-Klassiker er als Jugendlicher hatte.

  1. Apple-Patent Mac und iPad hören es kratzen und klopfen
  2. Verfassungsgericht Anti-Terror-Datei ist in Teilen verfassungswidrig
  3. 2. Politiker-LAN Der Bundestag spielt wieder

Larry Page: "Microsoft will uns ausnutzen"
Larry Page
"Microsoft will uns ausnutzen"

Larry Page hat sich darüber beschwert, dass Microsoft bei Chatprogrammen kleingeistig sei, und sich für Interoperabilität eingesetzt. "Das ist wirklich traurig, so ist kein Fortschritt möglich", sagte er auf der Entwicklerkonferenz Google I/O.

  1. Google-Chef Larry Page leidet an einer Stimmbandlähmung
  2. Eric Schmidt Google Glass kommt später
  3. Multiscreen-Welt Google macht 3,35 Milliarden US-Dollar Gewinn

Homosexualität in Spielen: Bug oder Feature?
Homosexualität in Spielen
Bug oder Feature?

Im Spiel Tomodachi Collection: New Life für den Nintendo 3DS ist es möglich, dass Männer einander heiraten. Nintendo bezeichnet das als Bug - und erntet dafür Empörung.

  1. Strategiespiel HTML5-Version von Freeciv veröffentlicht
  2. Shadow of the Eternals 1,5 Millionen US-Dollar für vier Stunden langen Auftakt
  3. Dokumentarfilm Frauenfeindlichkeit in der Spieleszene

Zum Artikel