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.


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. IT-Service Architekt/-in Messen & Events
    Daimler AG, Stuttgart
  2. App-Entwickler (m/w)
    über Kilmona PersonalManagement GmbH, München
  3. Software Entwickler Java (m/w)
    über Hanseatisches Personalkontor München, München
  4. IT Consultant Hybris Marketing (m/w)
    Robert Bosch GmbH, Stuttgart-Feuerbach

Detailsuche



Anzeige

Folgen Sie uns
       


  1. Overwatch im Test

    Superhelden ohne Sammelsucht

  2. Mobilfunk

    Wirtschaftssenatorin will 5G-Testbed in Berlin durchsetzen

  3. Streit der Tech-Milliardäre

    Ebay-Gründer unterstützt Gawker im Streit mit Hulk Hogan

  4. Siri-Lautsprecher

    Apple setzt auf Horch und Guck

  5. Soylent-Flüssignahrung

    Die Freiheit, nicht ans Essen zu denken

  6. Fraunhofer IPMS

    Multispektralkamera benötigt nur ein Objektiv

  7. Transformer 3 (Pro)

    Asus zeigt Detachables mit Kaby Lake

  8. Delock DL-89456

    Netzwerkkarte für 2.5 und 5GbE

  9. Bezahlsystem

    Apple will Pay zügig in Europa ausweiten

  10. Überwachung

    Aufregung um Intermediate-Zertifikat für Bluecoat



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Oracle vs. Google: Wie man Geschworene am besten verwirrt
Oracle vs. Google
Wie man Geschworene am besten verwirrt
  1. Die Woche im Video Die Schoko-Burger-Woche bei Golem.de - mmhhhh!
  2. Java-Rechtsstreit Oracle verliert gegen Google
  3. Oracle vs. Google Wie viel Fair Use steckt in 11.000 Codezeilen?

GPD XD im Test: Zwischen Nintendo 3DS und PS Vita ist noch Platz
GPD XD im Test
Zwischen Nintendo 3DS und PS Vita ist noch Platz
  1. Xbox Scorpio Schneller als Playstation Neo und mit Rift-Unterstützung
  2. Playstation 4 Rennstart für Gran Turismo Sport im November 2016
  3. AMD Drei Konsolen-Chips für 2017 angekündigt

Intels Compute Stick im Test: Der mit dem Lüfter streamt (2)
Intels Compute Stick im Test
Der mit dem Lüfter streamt (2)
  1. Security Microsoft will Passwort 'Passwort' verbieten
  2. Stratix 10 MX Alteras Chips nutzen HBM2 und Intels Interposer-Technik
  3. HBM2 eSilicon zeigt 14LPP-Design mit High Bandwidth Memory

  1. test?

    My1 | 14:32

  2. Re: Reinhardt ist kein Roboterkrieger

    Inkunabula | 14:32

  3. Re: Bester Egoshooter seit langem

    Muhaha | 14:32

  4. Und jetzt mal Butter bei die Fische

    Ovaron | 14:31

  5. Re: Was ich im Artikel viel lieber gelesen hätte

    Muhaha | 14:31


  1. 14:00

  2. 13:28

  3. 13:08

  4. 12:54

  5. 12:02

  6. 11:39

  7. 11:28

  8. 11:10


  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