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. SAP Spezialist/in für Berechtigungen und Usermanagement
    Endress+Hauser InfoServe GmbH+Co. KG, Weil am Rhein
  2. Software-Entwickler (m/w) Continuous Integration
    e.solutions GmbH, Ulm
  3. Tester in der Softwareentwicklung (m/w)
    Daimler AG, Stuttgart
  4. IT-Anwendungsbetreuer/in System- und Netzwerktechnik
    Große Kreisstadt Freising, Freising

 

Detailsuche


Blu-ray-Angebote
  1. TV-Serien auf Blu-ray bis zu 40% reduziert
    (u. a. Banshee S. 1 14,90€, Da Vincis Demons S. 1 12,97€, Shameless S. 2 18,97€)
  2. VORBESTELLBAR: Star Wars Rebels - Die komplette erste Staffel [Blu-ray]
    29,99€
  3. Chappie / District 9 / Elysium (exklusiv bei amazon.de) [Blu-ray]
    19,99€

 

Weitere Angebote


Folgen Sie uns
       


  1. UNHRC

    Die UNO hat einen Sonderberichterstatter für Datenschutz

  2. Nordamerika

    Arin aktiviert Wartelistensystem für IPv4-Adressen

  3. Modellreihe CUH-1200

    Neue PS4 nutzt halb so viele Speicherchips

  4. Die Woche im Video

    Apple Music gestartet, Netzneutralität bedroht, NSA geleakt

  5. Internet.org

    Mark Zuckerberg will Daten per Laser auf die Erde übertragen

  6. TLC-Flash

    Samsung plant SSDs mit 2 und 4 TByte

  7. Liske

    Bitkom schließt Vorstandsmitglied im Streit aus

  8. Surfen im Ausland

    Apple SIM in Deutschland erhältlich

  9. Haushaltshilfe

    Rockets Helpling kauft Hassle.com

  10. Zynq Ultra Scale Plus

    Xilinx lässt erste 16-nm-Chips fertigen



Haben wir etwas übersehen?

E-Mail an news@golem.de



Anonymes Surfen: Die Tor-Zentrale für zu Hause
Anonymes Surfen
Die Tor-Zentrale für zu Hause
  1. Anonymisierung Zur Sicherheit den eigenen Tor-Knoten betreiben
  2. Tor Hidden Services leichter zu deanonymisieren
  3. Projekt Astoria Algorithmen gegen Schnüffler im Tor-Netzwerk

Xperia Z4 Tablet im Test: Dünn, leicht und heiß
Xperia Z4 Tablet im Test
Dünn, leicht und heiß
  1. First Flight Sony stellt Crowdfunding-Plattform für eigene Ideen vor
  2. Android-Entwicklung Sony bietet Android-M-Vorschau für Xperia-Geräte an
  3. Android Recovery Mode jetzt offiziell für Sony-Smartphones verfügbar

Protokoll: DNSSEC ist gescheitert
Protokoll
DNSSEC ist gescheitert
  1. VPN-Schwachstellen PureVPN veröffentlicht Patch für seine Windows-Software
  2. Security Viele VPN-Dienste sind unsicher

  1. Re: HDMI 2.0 ?

    bestfiction | 22:30

  2. Re: Ich hätt da noch 'ne Idee ...

    wittiko | 22:18

  3. Re: Scheiss Silverlight

    razer | 22:13

  4. Re: Fenster...

    Moe479 | 22:07

  5. und von was lebt er und bezahlt Flüge usw?

    Poison Nuke | 22:06


  1. 14:04

  2. 11:55

  3. 10:37

  4. 09:33

  5. 16:52

  6. 16:29

  7. 16:25

  8. 15:52


  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