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. Bosch Sensortec GmbH, Reutlingen
  2. Robert Bosch GmbH, Abstatt
  3. Dr. Oetker Tiefkühlprodukte KG, Wittlich
  4. OSRAM GmbH, Garching bei München


Anzeige
Spiele-Angebote
  1. 49,98€ (Vorbesteller-Preisgarantie)
  2. 699,00€

Folgen Sie uns
       


  1. Sony

    Playstation 4 Slim bietet 5-GHz-WLAN

  2. Exploits

    Treiber der Android-Hersteller verursachen Kernel-Lücken

  3. Nike+

    Social-Media-Wirrwarr statt "Just do it"

  4. OxygenOS vs. Cyanogenmod im Test

    Ein Oneplus Three, zwei Systeme

  5. ProSiebenSat.1

    Sechs neue Apps mit kostenlosem Live-Streaming

  6. Raumfahrt

    Juno überfliegt Jupiter in geringer Distanz

  7. Epic Loot

    Ubisoft schließt sechs größere Free-to-Play-Spiele

  8. Smart Home

    Philips-Hue-Bewegungsmelder und neue Leuchten angekündigt

  9. Multirotor G4

    DLRG setzt auf Drohne zur Personensuche im Wasser

  10. Android 7.0

    Erste Nougat-Portierung für Nexus 4 verfügbar



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Radeon RX 460: AMDs kleinste Polaris-Karte braucht mehr Speicher
Radeon RX 460
AMDs kleinste Polaris-Karte braucht mehr Speicher
  1. Polaris-Grafikkarten Neuer Treiber steigert Bildrate in Tomb Raider
  2. Polaris-Grafikkarten AMD stellt Radeon RX 470 und RX 460 vor
  3. Radeon Pro SSG AMD zeigt Profi-Karte mit SSDs für ein TByte Videospeicher

Radeon RX 470 im Test: Die 1080p-Karte für High statt Ultra
Radeon RX 470 im Test
Die 1080p-Karte für High statt Ultra
  1. Radeons RX 480 Die Designs von AMDs Partnern takten höher - und konstanter
  2. Radeon Software 16.7.2 Neuer Grafiktreiber macht die RX 480 etwas schneller
  3. Radeon RX 480 erneut vermessen Treiber reduziert Stromstärke auf PEG-Slot

Garmin Vivosmart HR+ im Hands on: Das Sport-Computerchen
Garmin Vivosmart HR+ im Hands on
Das Sport-Computerchen
  1. Fenix Chronos Garmins neue Sport-Smartwatch kostet ab 1.000 Euro
  2. Polar M600 Sechs LEDs für eine Pulsmessung
  3. Garmin Edge 820 Radcomputer zeigt Position der Tourbegleiter

  1. Sony Funksingnale

    Garius | 16:39

  2. Re: Wer gegen F2P-Games und InGame-Käufe ist, ...

    Muhaha | 16:37

  3. Re: Wenn wir jetzt noch den Faktor "bei gleicher...

    plutoniumsulfat | 16:36

  4. Re: Gesetzt gefordert

    Ymi_Yugy | 16:34

  5. b/g/n/ac - 2,4 und 5 GHz Verwirrung

    _j_b_ | 16:34


  1. 16:26

  2. 14:08

  3. 12:30

  4. 12:02

  5. 12:00

  6. 11:39

  7. 10:22

  8. 09:45


  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