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. IT-Administrator (m/w)
    synlab Services GmbH, Augsburg
  2. Online Prozessmanager (m/w)
    Home Shopping Europe GmbH, Ismaning Raum München
  3. IT-Consultant für IT-Strategie und Organisation (m/w)
    Janz IT AG, Hamburg, Hannover, Oldenburg, Paderborn
  4. Business Intelligence (BI) Developer (m/w)
    Mister Spex GmbH, Berlin

 

Detailsuche


Spiele-Angebote
  1. Aktion: Batman: Arkham Knight PS 4 kaufen und 10€ Gutschein auf Seasonpass erhalten
  2. PlayStation 4 - Konsole Ultimate Player 1TB Edition
    395,00€
  3. NEU: The Witcher 3: Wild Hunt - PlayStation 4
    39,00€

 

Weitere Angebote


Folgen Sie uns
       


  1. Oneplus Two im Hands On

    Das Flagship-Killerchen

  2. #Landesverrat

    Range stellt Ermittlungen gegen Netzpolitik.org vorerst ein

  3. Biomimetik

    Roboter kann über das Wasser laufen

  4. Worms

    Kampfwürmer für zu Hause und die Hosentasche

  5. SQL-Dump aufgetaucht

    Generalbundesanwalt.de gehackt

  6. Brandgefahr

    Nvidia ruft das Shield Tablet zurück

  7. Tembo the Badass Elephant im Test

    Elefant im Elite-Einsatz

  8. Galaxy J5

    Samsungs Moto-G-Konkurrent kommt für 220 Euro

  9. Galliumnitrid

    Bisher kleinstes Notebook-Netzteil entwickelt

  10. Luftschiff

    Zeppeline für die Zukunft



Haben wir etwas übersehen?

E-Mail an news@golem.de



Kepler-452b: Die "zweite Erde", die schon wieder keine ist
Kepler-452b
Die "zweite Erde", die schon wieder keine ist
  1. Weltraumteleskop Kepler entdeckt Supererde in der habitablen Zone

Pixars Inside Out im Dolby Cinema: Was blenden soll, blendet auch
Pixars Inside Out im Dolby Cinema
Was blenden soll, blendet auch
  1. Ultra HD Blu-ray Es geht bald los mit 4K-Filmen auf Blu-ray

Neue WLAN-Router-Generation: Hohe Bandbreiten mit zweifelhaftem Nutzen
Neue WLAN-Router-Generation
Hohe Bandbreiten mit zweifelhaftem Nutzen
  1. EA8500 Linksys' MU-MIMO-Router kostet 300 Euro
  2. Aruba Networks 802.11ac-Access-Points mit integrierten Bluetooth Beacons
  3. 802.11ac Wave 2 Neue Chipsätze für die zweite Welle von ac-WLAN

  1. Mir waere es lieber wurscht wie gross es ist...

    Turner | 21:26

  2. Re: Übliche Frequenzen?

    derats | 21:25

  3. Re: wieder fester akku

    crazypsycho | 21:22

  4. Re: Dieselbe Kamera und Display?! WTF

    blmw911 | 21:19

  5. Re: Woher weiss OnePlus

    Jasmin26 | 21:19


  1. 18:46

  2. 17:49

  3. 17:26

  4. 16:39

  5. 15:00

  6. 14:18

  7. 14:00

  8. 13:14


  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