Anzeige
PHP-Code im Browser ausführen
PHP-Code im Browser ausführen (Bild: Niklas von Hertzen)

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. Configuration Manager / Build Engineer (m/w)
    GOM - Gesellschaft für Optische Messtechnik mbH, Braunschweig
  2. IT-Release Projektmanager Cross-Channel SAFe (m/w)
    Media-Saturn IT Services GmbH, Ingolstadt
  3. Webentwickler, Programmierer als Sicherheitsexperte (m/w)
    OPTIMAbit GmbH, München
  4. Administrator/in für den technischen Betrieb von Windchill
    Schaeffler Technologies AG & Co. KG, Herzogenaurach

Detailsuche


Spiele-Angebote
  1. VORBESTELLBAR: Overwatch - Collector's Edition [PC/PS4/Xbox 360]
    129,99€ (Vorbesteller-Preisgarantie)
  2. Fallout 3 - Game of the Year Edition [PC Code - Steam] USK 18
    6,79€
  3. NEU: Xbox One 1TB Elite Bundle (inkl. PES 2015)
    429,00€ (Saturn)

Weitere Angebote


Folgen Sie uns
       


  1. Verschlüsselung

    Thüringens Verfassungsschutzchef Kramer verlangt Hintertüren

  2. Xeon D-1571

    Intel veröffentlicht sparsamen Server-Chip mit 16 Kernen

  3. Die Woche im Video

    Sensationen und Skandale

  4. Micron

    Von 1Y-/1Z-DRAM-, 3D-Flash- und 3D-Xpoint-Plänen

  5. Hochbahn

    Hamburger Nahverkehr bekommt bald kostenloses WLAN

  6. ViaSat Joint Venture

    Eutelsat wird schnelleres Satelliten-Internet bieten

  7. SSDs

    Micron startet Serienfertigung von 3D-NAND-Flash

  8. TV-Kabelnetz

    Ausfall für 30.000 Haushalte bei Unitymedia

  9. Nordrhein-Westfalen

    Mehrere Krankenhäuser von Malware befallen

  10. Erneuerbare Energien

    Brennstoffzelle produziert Strom oder Wasserstoff



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Raspberry Pi Zero angetestet: Der Bastelrechner für stille, dunkle Ecken
Raspberry Pi Zero angetestet
Der Bastelrechner für stille, dunkle Ecken
  1. Jaguarboard Noch ein Bastelcomputer mit Intel-Chip
  2. Cricetidometer mit Raspberry Pi Ein Schrittzähler für den Hamster
  3. Orange Pi Lite Preis- und Größenkampf der Bastelcomputer

Lumberyard: Amazon krempelt den Spielemarkt um
Lumberyard
Amazon krempelt den Spielemarkt um
  1. Lumberyard Amazon veröffentlicht Engine auf Basis der Cryengine

VBB-Fahrcard: Der Fehler steckt im System
VBB-Fahrcard
Der Fehler steckt im System
  1. VBB-Fahrcard Busse speichern seit mindestens April 2015 Bewegungspunkte
  2. VBB-Fahrcard Berlins elektronische Fahrkarte speichert Bewegungsprofile

  1. Wieso Blätter?

    heubergen | 11:56

  2. Re: Zeit für Technik ohne diese Seltene Erden u...

    Kaliumhexacyano... | 11:54

  3. Re: Wo ist der Typ denn ausgegraben worden?

    dudida | 11:54

  4. Re: Surface Phone mit XPoint Memory (?)

    Kleba | 11:53

  5. Re: Open Source...

    dudida | 11:52


  1. 11:03

  2. 09:21

  3. 09:03

  4. 00:24

  5. 18:25

  6. 18:16

  7. 17:46

  8. 17:22


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel