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.


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. Vermessungstechniker/in / Geomatiker/in
    Landratsamt Göppingen, Göppingen
  2. Teamleiter E/E (m/w)
    MBtech Group GmbH & Co. KGaA, Mannheim
  3. System- und Software-Entwicklungsingenie- ur/-in für Fahrerassistenzsysteme
    Robert Bosch GmbH, Leonberg
  4. Software Ingenieur (m/w) Roboterprogrammierung / Automatisierungstechnik
    Continental AG, Hannover

 

Detailsuche


Hardware-Angebote
  1. NEU: Raidmax Blackstorm Green
    64,99€
  2. Crucial MX100 256GB zum Bestpreis bei Redcoon
    95,50€
  3. PCGH-Professional-PC GTX970-Edition
    (Core i7-4790K + Geforce GTX 970)

 

Weitere Angebote


Folgen Sie uns
       


  1. Gewinnrückgang

    "Microsoft ist weiterhin im Wandel"

  2. Music Key

    Alles oder nichts für Indie-Musiker bei Youtube

  3. Privatsphäre im Netz

    Open-Source-Projekte sollen 1984 verhindern

  4. The Witcher 3 angespielt

    Geralt und die "Mission Bratpfanne"

  5. Onlinehandel

    Welche Versand-Flatrates sich nicht lohnen

  6. Jessie

    Erster Release Candidate für neuen Debian-Installer

  7. Biicode

    Abhängigkeitsverwaltung für C/C++ soll Open Source werden

  8. Mobilfunk

    O2 schaltet LTE-Nutzung für alle Blue-Tarife frei

  9. Broadwell-Mini-PC

    Gigabytes Brix ist noch kompakter als Intels NUC

  10. Cyanogen Inc.

    "Wir versuchen, Google Android wegzunehmen"



Haben wir etwas übersehen?

E-Mail an news@golem.de



Erpressung und Geldwäsche: Polizei kommt bei Cybercrime nicht hinterher
Erpressung und Geldwäsche
Polizei kommt bei Cybercrime nicht hinterher
  1. Malware BSI will Zwangstrennung infizierter Rechner vom Internet
  2. Cybercrime Trotz 300 Cyber-Ermittlern bleibt Aufklärungsquote gleich
  3. Cybercrime HP eröffnet Cyber-Abwehrzentrum in Böblingen

Heimkino-Raumklang von oben: Dolby Atmos klingt gut, Auro 3D klingt besser
Heimkino-Raumklang von oben
Dolby Atmos klingt gut, Auro 3D klingt besser
  1. DTS:X Probe gehört Dolby-Atmos-Konkurrent arbeitet mit Deckenlautsprechern
  2. Surround-Sound Holpriger Start für Blu-ray-Discs mit Dolby Atmos
  3. Interstellar in 70 mm Berliner Zoo Palast schiebt die Digitalprojektoren beiseite

Neues Betriebssystem: Microsoft nennt viele neue Details zu Windows 10
Neues Betriebssystem
Microsoft nennt viele neue Details zu Windows 10
  1. Microsoft Nicht alle Windows-Phone-Smartphones erhalten Windows 10
  2. Surface Hub Microsoft zeigt Konferenzsystem mit Digitizer und Windows 10
  3. Hololens mit Windows Holodeck-Zeitalter mit einer autarken Datenbrille

    •  / 
    Zum Artikel