Abo
  • Services:
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 :)



Anzeige

Stellenmarkt
  1. Daimler AG, Leinfelden-Echterdingen
  2. Daimler AG, Böblingen
  3. Robert Bosch GmbH, Stuttgart-Feuerbach
  4. Schaeffler Technologies AG & Co. KG, Nürnberg


Anzeige
Top-Angebote
  1. 8,58€ (ohne Prime bzw. unter 29€ Einkauf + 3€ Versand)
  2. 39,99€ (Vorbesteller-Preisgarantie)
  3. 44,99€ (Vorbesteller-Preisgarantie)

Folgen Sie uns
       


  1. Ronny Verhelst

    Tele-Columbus-Chef geht nach Hause

  2. Alphabet

    Googles Gewinn geht wegen EU-Strafe zurück

  3. Microsoft

    Nächste Hololens nutzt Deep-Learning-Kerne

  4. Schwerin

    Livestream-Mitschnitt des Stadtrats kostet 250.000 Euro

  5. Linux-Distributionen

    Mehr als 90 Prozent der Debian-Pakete reproduzierbar

  6. Porsche Design

    Huaweis Porsche-Smartwatch kostet 800 Euro

  7. Smartphone

    Neues Huawei Y6 für 150 Euro bei Aldi erhältlich

  8. Nahverkehr

    18 jähriger E-Ticket-Hacker in Ungarn festgenommen

  9. Bundesinnenministerium

    Neues Online-Bürgerportal kostet 500 Millionen Euro

  10. Linux-Kernel

    Android O filtert Apps großzügig mit Seccomp



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Creoqode 2048 im Test: Wir programmieren die größte portable Spielkonsole der Welt
Creoqode 2048 im Test
Wir programmieren die größte portable Spielkonsole der Welt
  1. Arduino 101 Intel stellt auch das letzte Bastler-Board ein
  2. 1Sheeld für Arduino angetestet Sensor-Platine hat keine Sensoren und liefert doch Daten
  3. Calliope Mini im Test Neuland lernt programmieren

Ikea Trådfri im Test: Drahtlos (und sicher) auf Schwedisch
Ikea Trådfri im Test
Drahtlos (und sicher) auf Schwedisch
  1. Die Woche im Video Kündigungen, Kernaussagen und KI-Fahrer
  2. Augmented Reality Ikea will mit iOS 11 Wohnungen virtuell einrichten
  3. Space10 Ikea-Forschungslab untersucht Umgang mit KI

Microsoft Surface Pro im Test: Dieses Tablet kann lange
Microsoft Surface Pro im Test
Dieses Tablet kann lange
  1. Microsoft Neues Surface Pro fährt sich ohne Grund selbst herunter
  2. iFixit-Teardown Surface Laptop ist fast nicht reparabel
  3. Surface Studio Microsofts Grafikerstation kommt nach Deutschland

  1. Re: nächste Hololens, wo ist die momentane Hololens?

    Emulex | 06:53

  2. Re: Eine Beleidigung für echte Fotografen

    Dennisb456 | 06:52

  3. Re: USB Anschluss

    Peter Brülls | 06:44

  4. Re: DSLRs?

    ArcherV | 06:38

  5. Re: Andersherum: Wieso nicht das Unternehmen...

    oleurgast | 05:16


  1. 23:54

  2. 22:48

  3. 16:37

  4. 16:20

  5. 15:50

  6. 15:35

  7. 14:30

  8. 14:00


  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