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. Systemspezialist Bankensysteme (m/w)
    Wirecard Bank AG, Aschheim bei München
  2. Embedded Software Entwickler (m/w) für Batterie-Management-Systeme
    BMZ Batterien-Montage-Zentrum GmbH, Karlstein am Main
  3. Digital Specialist (m/w)
    Unilever Deutschland GmbH, Heilbronn
  4. Softwareentwickler/in
    Landeshauptstadt München, München

 

Detailsuche


Spiele-Angebote
  1. God of War 3 Remastered - [PlayStation 4]
    49,00€ (Release 15. Juli)
  2. PS4 + The Witcher 3 + Comic
    399,00€
  3. F1 2015 Special Edition (exkl. bei Amazon.de) PS4/Xbox One
    69,99€ (Vorbesteller-Preisgarantie) - Release 12.06.

 

Weitere Angebote


Folgen Sie uns
       


  1. Google Jump

    Google verbindet 16 Gopros zu einem Insektenauge

  2. FPGAs

    Intel will FPGA-Experten Altera doch noch kaufen

  3. Karten-App

    Offline-Navigation für Google Maps geplant

  4. Metaio

    Apple kauft Münchner Augmented-Reality-Firma

  5. Elements

    Amazon will eigene frische Lebensmittel anbieten

  6. Elon Musk

    "Ich will auf dem Mars sterben, bloß nicht bei der Landung"

  7. Catalyst 15.5 Beta

    Neuer Radeon-Grafiktreiber beschleunigt Project Cars stark

  8. Akku-Uhrenarmband

    Apple Watch soll über verdeckten Port schneller laden

  9. Sprachassistent

    Google Now wird schlauer

  10. Google

    Fotos-App mit unbegrenztem Cloud-Speicher



Haben wir etwas übersehen?

E-Mail an news@golem.de



Yubikey: Nie mehr schlechte Passwörter
Yubikey
Nie mehr schlechte Passwörter
  1. Internet Deutsche Polizisten sind oft digitale Analphabeten
  2. Cyberangriff im Bundestag Ausländischer Geheimdienst soll Angriff gestartet haben
  3. Identitätsdiebstahl Gesetz zu Datenhehlerei könnte Leaking-Plattformen gefährden

Golem.de-Test mit Kaspersky: So sicher sind Fototerminals und Copyshops
Golem.de-Test mit Kaspersky
So sicher sind Fototerminals und Copyshops
  1. Studie Docker-Images oft mit Sicherheitslücken
  2. US-Steuerbehörde Hunderttausend Konten kompromittiert
  3. Hack auf Datingplattform Sexuelle Vorlieben von Millionen Menschen veröffentlicht

The Witcher 3 im Grafiktest: Mehr Bonbon am PC
The Witcher 3 im Grafiktest
Mehr Bonbon am PC
  1. CD Projekt Red The Witcher 3 hat Speicherproblem auf Xbox One
  2. Sabotagevorwurf Witcher-3-Streit zwischen AMD und Nvidia
  3. The Witcher 3 im Test Wunderschönes Wohlfühlabenteuer

  1. Jemand ne Idee für Lightroom-User?

    nightfire2xs | 10:16

  2. Re: Bitte nicht wie bei iOS...(SuperSU for...

    violator | 10:15

  3. Re: Realistisch...

    bjs | 10:15

  4. Re: netto sind das unter 2000

    non_sense | 10:15

  5. Re: bezahlung abhängig von tätigkeit

    Lemo | 10:15


  1. 09:51

  2. 09:43

  3. 09:40

  4. 09:29

  5. 07:52

  6. 07:00

  7. 03:08

  8. 23:20


  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