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. Deutsche Hypothekenbank AG, Hannover
  2. FTI Touristik GmbH, München
  3. SSI Schäfer Automation GmbH, Giebelstadt
  4. Ratbacher GmbH, Köln


Anzeige
Top-Angebote
  1. (u. a. Sony Alpha 6000 Bundle für 499€ und Lenovo C2 für 59€)
  2. 59,99€
  3. (heute u. a. mit Dremel-Artikeln, Roccat-Mäusen und Sony Alpha 6000 + Objektiv AF E 16-50 mm für...

Folgen Sie uns
       


  1. PowerVR 9XE/9XM und PowerVR 2NX

    Imagination Technologies bringt eigenen AI-Beschleuniger

  2. Auslastung

    Wenn es Abend wird im Kabelnetz

  3. Milliarden-Deal

    Google kauft Smartphone-Teile von HTC

  4. MPEG

    H.265-Nachfolger kann 30 bis 60 Prozent Verbesserung bringen

  5. Liberty Global

    Giga-Standard Docsis 3.1 kommt im ersten Quartal 2018

  6. Apache-Sicherheitslücke

    Optionsbleed bereits 2014 entdeckt und übersehen

  7. Tianhe-2A

    Zweitschnellster Supercomputer wird doppelt so flott

  8. Autonomes Fahren

    Japan testet fahrerlosen Bus auf dem Land

  9. Liberty Global

    Unitymedia-Mutterkonzern hat Probleme mit Amazon

  10. 18 Milliarden Dollar

    Finanzinvestor Bain übernimmt Toshibas Speichergeschäft



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Zukunft des Autos: "Unsere Elektrofahrzeuge sollen typische Porsche sein"
Zukunft des Autos
"Unsere Elektrofahrzeuge sollen typische Porsche sein"
  1. Concept EQA Mercedes elektrifiziert die Kompaktklasse
  2. GLC F-Cell Mercedes stellt SUV mit Brennstoffzelle und Akku vor
  3. ID Crozz VW stellt elektrisches Crossover vor

Optionsbleed: Apache-Webserver blutet
Optionsbleed
Apache-Webserver blutet
  1. Open Source Projekt Oracle will Java EE abgeben

Kein App Store mehr: iOS-Nutzer sollten das neue iTunes nicht installieren
Kein App Store mehr
iOS-Nutzer sollten das neue iTunes nicht installieren
  1. Betriebssystem Apple veröffentlicht Goldmaster für iOS, tvOS und WatchOS
  2. iPhone iOS 11 bekommt Schutz gegen unerwünschte Memory-Dumps
  3. IOS 11 Epic Games rettet Infinity Blade ins 64-Bit-Zeitalter

  1. "Füllrate pro Quadratmillimeter"

    rubberduck09 | 09:06

  2. Re: 50Mbit und guter Ping 24/7/365 Telekom...

    Bautz | 09:05

  3. Re: Als Android-Nutzer beneide ich euch

    Niaxa | 09:03

  4. Re: "Vodafone sieht sich nicht betroffen"

    besterwosgibt | 09:03

  5. Re: Vodafone Cable in Berlin Verbindungsabbrüche

    Arschi | 09:02


  1. 09:00

  2. 08:00

  3. 07:10

  4. 07:00

  5. 18:10

  6. 17:45

  7. 17:17

  8. 16:47


  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