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 Specialist Security (m/w)
    Dr. August Oetker Nahrungsmittel KG, Bielefeld
  2. Systembetreuer / -engineer (m/w) im Bereich IT Infrastruktur
    SLV GmbH, Übach-Palenberg
  3. Customer Product Manager für die Personalisierung von Kundenprodukten (m/w)
    Giesecke & Devrient GmbH, München
  4. Softwareentwickler Embedded / Projektleiter (m/w)
    Wanzl Metallwarenfabrik GmbH, Leipheim

Detailsuche



Anzeige

Folgen Sie uns
       


  1. Agon AG271QX

    Erster 1440p-Monitor mit 30-Hz-Freesync-Untergrenze

  2. Alienation im Test

    Mit zwei Analogsticks gegen viele Außerirdische

  3. Das Internet der Menschen

    "Industrie 4.0 verbannt Menschen nicht aus Werkhallen"

  4. Smartphone

    Honor 7 Premium ab dem 2. Mai für 350 Euro erhältlich

  5. Snowden

    Natural Born Knüller

  6. Ohne Google-Dienste

    Fairphone 2 bekommt offenes Android

  7. Messenger

    Whatsapp bekommt offenbar Voicemail und Rückrufe

  8. Großinvestor

    Icahn steigt bei Apple aus

  9. Ohne Display

    Leica M-D ist eine analoge Digitalkamera

  10. Smartphone-Chips

    Intel soll Broxton und Sofia eingestellt haben



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Ubuntu on Windows im Test: Eine neue Hassliebe auf der Kommandozeile
Ubuntu on Windows im Test
Eine neue Hassliebe auf der Kommandozeile
  1. Subsystem für Linux Microsoft entschlackt den Kernel für Ubuntu on Windows
  2. Windows 10 Neue Insider-Preview verbessert Stift-Unterstützung
  3. Windows 10 Insider Build Vorschau mit dem Windows Subsystem for Linux ist da

850 Evo v2 im Test: Samsungs neue SSDs sind kleiner und doch gleich groß
850 Evo v2 im Test
Samsungs neue SSDs sind kleiner und doch gleich groß
  1. Z410 Sandisk packt planaren TLC-Flash in seine Client-SSDs
  2. PNY CS2211 XLR8 im Test Überarbeiteter Controller trifft 15-nm-MLC-Flash
  3. MX300 Crucial bringt erste 3D-Flash-basierte SSDs noch im April

Industrie 4.0: Wenn die Fracht dem Frachter Vertrauliches erzählt
Industrie 4.0
Wenn die Fracht dem Frachter Vertrauliches erzählt
  1. Industrie 4.0 Datendesigner dringend gesucht
  2. Studie zu Digitalisierung Das Milliardenpotenzial von Industrie 4.0
  3. Alpha-Go-Schock Südkorea investiert 760 Millionen Euro in KI-Förderung

  1. Re: DNS / DNA - bitte in deutsch

    ArcherV | 15:51

  2. Re: 2 Wochen Bing

    quadronom | 15:47

  3. Re: Noch keine Aufschreie?

    Lala Satalin... | 15:47

  4. Re: Ich kann es kaum glauben, dann ist die...

    Sarkastius | 15:45

  5. Re: Krieg ist eine Angelegenheit der Dummen

    ConiCool | 15:44


  1. 15:03

  2. 14:00

  3. 13:00

  4. 12:45

  5. 12:01

  6. 11:50

  7. 11:40

  8. 11:35


  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