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

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

Der Webentwickler von Hertzen hat PHP in Javascript nachgebaut, so dass PHP-Code direkt im Browser oder unter Node.js ausgeführt werden kann.

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.

Anzeige

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.


eye home zur Startseite
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. Product Manager für den FleetBoard Store (m/w)
    Daimler AG, Stuttgart
  2. Software Engineer Mobile Apps (m/w)
    Daimler AG, Berlin
  3. Senior Information Security Analyst (m/w)
    GENTHERM GmbH, Odelzhausen
  4. Developer Java (m/w) Division Issuing
    Wirecard Technologies GmbH, Aschheim bei München

Detailsuche



Anzeige

Folgen Sie uns
       


  1. Millionenrückzahlung

    Gericht erklärt Happy Birthday für gemeinfrei

  2. Trials of the Blood Dragon im Test

    Motorräder im B-Movie-Rausch

  3. Raumfahrt

    Kepler Communications baut Internet für Satelliten

  4. Klage zum Leistungsschutzrecht

    Verlage ziehen gegen Google in die nächste Runde

  5. Wileyfox Spark

    Drei Smartphones mit Cyanogen OS für wenig Geld

  6. Sound BlasterX H7

    Creative erweitert das H5-Headset um Surround-Sound

  7. Datenschutz

    Facebook trackt Standort der Nutzer um Freunde vorzuschlagen

  8. Microsoft

    Plattformübergreifendes .Net Core erscheint in Version 1.0

  9. Mobbing auf Wikipedia

    Content-Vandalismus, Drohungen und Beschimpfung

  10. Patentstreitigkeiten

    Arista wirft Cisco unfaire Mittel vor



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Geforce GTX 1080/1070 im Test: Zotac kann Geforce besser als Nvidia
Geforce GTX 1080/1070 im Test
Zotac kann Geforce besser als Nvidia
  1. Die Woche im Video Superschnelle Rechner, smarte Zähler und sicherer Spam
  2. Geforce GTX 1080/1070 Asus und MSI schummeln mit Golden Samples
  3. Geforce GTX 1070 Nvidia nennt Spezifikationen der kleinen Pascal-Karte

Prozessor: Den einen Core M gibt es nicht
Prozessor
Den einen Core M gibt es nicht
  1. Elitebook 1030 G1 HPs Core-M-Notebook soll 13 Stunden durchhalten

IT und Energiewende: Fragen und Antworten zu intelligenten Stromzählern
IT und Energiewende
Fragen und Antworten zu intelligenten Stromzählern
  1. Smart Meter Bundestag verordnet allen Haushalten moderne Stromzähler
  2. Intelligente Stromzähler Besitzern von Solaranlagen droht ebenfalls Zwangsanschluss
  3. Smart-Meter-Gateway-Anhörung Stromsparen geht auch anders

  1. Re: Religionisierung

    david_rieger | 15:15

  2. Re: systemfestpatte clonen und eine von den beiden...

    butch | 15:14

  3. Erster Gedanke

    manitu | 15:12

  4. Re: Welcher Arbeitgebe zahlt denn...

    PiranhA | 15:12

  5. Re: Zu groß und Cyanogen enttäuscht auf ganzer...

    David64Bit | 15:12


  1. 14:47

  2. 14:00

  3. 13:42

  4. 13:32

  5. 13:23

  6. 13:07

  7. 12:51

  8. 12:27


  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