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. Entwicklungsingenieur Applikationsmethodik und Software (m/w)
    MBtech Group GmbH & Co. KGaA, Fellbach bei Stuttgart
  2. IT Service Owner (m/w)
    IKEA IT Germany GmbH, Hofheim-Wallau
  3. Chief Product Owner (m/w)
    meinestadt.de, Köln
  4. Funktionsleiter/-in Zeitwirtschaft
    ZF Friedrichshafen AG, Friedrichshafen

 

Detailsuche


Hardware-Angebote
  1. Xbox One Wired Controller für Windows
    43,99€
  2. NEU: Samsung Galaxy S6 und S6 Edge im Preisvergleich
    ab 699,00€
  3. Evga Geforce GTX 960 SuperSC
    mit 20 Euro Cashback nur 194,90€ bezahlen

 

Weitere Angebote


Folgen Sie uns
       


  1. Vodafone

    "Mobilfunkpreise sollten zur Finanzierung von 5G steigen"

  2. Acer Liquid M220

    Markteinstieg mit Windows Phone für 90 Euro

  3. Ted Unangst

    OpenBSD will Browser sicherer machen

  4. Dual-Boot

    Console OS bringt Android-Spiele auf x86-Rechner

  5. Streaming

    O2 will trotz Drosselung Watchever anbieten

  6. Mozilla-Browser

    64-Bit-Firefox ist bereit für Alpha-Tests

  7. Leistungsschutzrecht

    Wie die VG Media der Google-Konkurrenz das Leben schwermacht

  8. Modulares Smartphone im Hands on

    Kinder spielen Lego, Große spielen Ara

  9. Signal 2.0

    Kostenlose verschlüsselte Nachrichten von iOS an Android

  10. MT8173

    Mediatek hat den ersten Tablet-Chip mit A72-Kernen



Haben wir etwas übersehen?

E-Mail an news@golem.de



Die Woche im Video: Abenteurer, Adware und ein fixer Anschluss
Die Woche im Video
Abenteurer, Adware und ein fixer Anschluss
  1. Die Woche im Video Ein Spionagering, Marskandidaten und Linux für den Desktop
  2. Die Woche im Video New 3DS, Stromzähler und der schnellste Smartphone-Chip
  3. Die Woche im Video Raspberry Pi 2, die Telekom am DE-CIX und Alienware Alpha

Raspberry Pi 2: Die Feierabend-Maschine
Raspberry Pi 2
Die Feierabend-Maschine
  1. Bastelrechner Das Raspberry Pi 2 hat viermal mehr Wumms
  2. Dual-Monitor-Betrieb VGA-Anschluss für Plus-Modelle des Raspberry Pi
  3. Bitscope Micro im Test Oszilloskop und Logic Analyzer für den Bastelrechner

IMHO: Automotive ist das neue Internet of Things
IMHO
Automotive ist das neue Internet of Things
  1. Uber-Konkurrent Kommt bald das Google-Taxi ohne Fahrer?
  2. Bundesverkehrsminister Autonome Autos sollen in zehn Jahren normal sein
  3. Autobahn Ruhrgebiet soll Testgebiet für autonomes Fahren werden

  1. Sailfish OS 2.0 fürs Handy

    Thaodan | 17:34

  2. Datenvolumen

    cat24max1 | 17:33

  3. Re: Ernsthaft - wozu braucht ein Desktop...

    Ovaron | 17:33

  4. Re: Laufzeit von Fernsehgeräten

    Koto | 17:33

  5. Nicht maschinenlesbar?

    colorando | 17:33


  1. 17:14

  2. 16:53

  3. 16:41

  4. 15:47

  5. 15:42

  6. 13:58

  7. 13:44

  8. 13:22


  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