BinaryPHP



  • Hat Andrei Alexandrescu in seiner Zeit bei Facebook nicht auch an einem PHP-zu-C++-Transpiler gearbeitet? Ich glaube das ist HPHPc, Source hier, vor diesem Commit.
    Wo es eine fertig kompilierte Version gibt, kann ich nicht sagen, aber wenn mit dem php2bin-Skript kein Weiterkommen ist, dann hätte ich persönlich mehr Vertrauen in diesen:
    Mindestens eine involvierte Person mit viel Ahnung von C++, funktionierede Projektseite und keine obskure Download-Seite wie Sourceforge, die sich schon lange ihren ehemals
    guten Ruf erfolgreich mit Späßen wie Drive-by-Downloads demoliert hat.



  • @Cardiac: Wie hast du das denn geschafft, dass es arbeitet? Bei mir wird keine cpp erzeugt bzw. wo war bei dir die entsprechende cpp Datei zu finden? Hat das jemand schon unter Windows benutzt?

    @Finnegan: Aber beim HPHPc wird keine cpp datei erzeugt oder? also dass ich z.B. aus hello.php eine hello.cpp machen kann.

    Danke euch!



  • Siralle schrieb:

    @Cardiac: Wie hast du das denn geschafft, dass es arbeitet? [...] wo war bei dir die entsprechende cpp Datei zu finden?

    Diese aussagen verraten mir, dass du meinen beitrag entweder nicht gelesen, oder nicht verstanden hast.

    Siralle schrieb:

    Hat das jemand schon unter Windows benutzt?

    Nein.



  • Siralle schrieb:

    @Finnegan: Aber beim HPHPc wird keine cpp datei erzeugt oder? also dass ich z.B. aus hello.php eine hello.cpp machen kann.

    Doch, eigentlich schon. Allerdings wurde die Weiterentwicklung des Transpilers wohl 2013 zugunsten der JIT-VM (HHVM) einsgestellt,
    und letztere über den bisherigen HPHPc-Kram im Git-Repository drübergebügelt, daher benötigt man wohl ein älteres Commit dieses
    Repos, wenn man an HPHPc interessiert ist.

    Ich habe HPHPc noch nie verwendet, es war lediglich als Anregung zum selbst recherchieren gedacht, wenn es die Alternativen nicht
    reissen. Wenn man allerdings bedenkt dass Facebook als "etwas größeres" PHP-Projekt für einige Zeit mit dieser Software betrieben
    wurde, darf man davon ausgehen dass der HPHPc halbwegs brauchbar sein dürfte.

    Leider habe ich nach einer groben Suche auch ein paar Schwierigkeiten gehabt, genauere Infos über den HPHPc zu finden, da auf den
    Seiten und in den Wikis dazu alles auf die HHVM angepasst wurde. Ich bin allerdings auf das hier gestoßen, das scheint mir eine
    Docker-Vorlage zu sein, mit der sich ein funktionierender HPHPc inklusive einiger wohl notwendiger Bugfixes bauen lässt.

    Das sieht mir alles erstmal etwas komplizierter aus, als ich zu Anfang dachte (hatte erwartet dass sich irgendwo schon eine HPHPc.exe
    finden lassen wird, mit der sich .cpp-Dateien erzeugen lassen), aber vielleicht ist es ja trotzdem einen Versuch wert, wenn du mit den
    Alternativen nicht weiterkommst. Ich kann allerdings nicht ganz ausschliessen, dass man zum Kompilieren der damit erzeugten .cpp-Dateien
    nicht eventuell noch eine zusätzliche C++-Bibliothek bauen und einbinden muss, die evtl. diverse PHP-Funktionalitäten in C++ bereitstellt.
    Ich habe mir die ganze Sache wie bereits angedeutet nur oberflächlich angesehen und nicht selbst getestet.



  • Finnegan schrieb:

    Siralle schrieb:

    @Finnegan: Aber beim HPHPc wird keine cpp datei erzeugt oder? also dass ich z.B. aus hello.php eine hello.cpp machen kann.

    Doch, eigentlich schon. Allerdings wurde die Weiterentwicklung des Transpilers wohl 2013 zugunsten der JIT-VM (HHVM) einsgestellt,
    und letztere über den bisherigen HPHPc-Kram im Git-Repository drübergebügelt, daher benötigt man wohl ein älteres Commit dieses
    Repos, wenn man an HPHPc interessiert ist.

    wo krieg ich den alten von 2013 noch her? Finde nur immer den neuen, aber ich würds definitiv gern ausprobieren.

    Das sieht mir alles erstmal etwas komplizierter aus, als ich zu Anfang dachte (hatte erwartet dass sich irgendwo schon eine HPHPc.exe
    finden lassen wird, mit der sich .cpp-Dateien erzeugen lassen), aber vielleicht ist es ja trotzdem einen Versuch wert, wenn du mit den
    Alternativen nicht weiterkommst. Ich kann allerdings nicht ganz ausschliessen, dass man zum Kompilieren der damit erzeugten .cpp-Dateien
    nicht eventuell noch eine zusätzliche C++-Bibliothek bauen und einbinden muss, die evtl. diverse PHP-Funktionalitäten in C++ bereitstellt.
    Ich habe mir die ganze Sache wie bereits angedeutet nur oberflächlich angesehen und nicht selbst getestet.[/quote]



  • Siralle schrieb:

    wo krieg ich den alten von 2013 noch her? Finde nur immer den neuen, aber ich würds definitiv gern ausprobieren.

    Schau dir die Links in meinen Beiträgen an. Hier sind sie nochmal:

    https://github.com/facebook/hhvm/commit/fc5b95110ff75110ad55bb97f7c93a8c4eb68e3b

    ...das ist wohl der letzte Commit, der noch HPHPc enthält.

    https://github.com/allanlw/hphpc-docker

    ...und hier ist der Quellcode der letzte HPHPc-Version zusammen mit einigen Patches in eine Docker-Vorlage verpackt. Das ist wohl (hoffentlich) eine Fire-And-Forget-Variante.



  • ganz blöde frage, wofür brauch ich einen docker? Ich dachte man lädt das hphpc irgendwo runter und dann packt man vorne die php rein und hinten kommt die c++ raus und man kann die c++ kompilieren und hat das Programm und fertig.



  • Siralle schrieb:

    ganz blöde frage, wofür brauch ich einen docker? Ich dachte man lädt das hphpc irgendwo runter und dann packt man vorne die php rein und hinten kommt die c++ raus und man kann die c++ kompilieren und hat das Programm und fertig.

    Im Prinzip habe ich das eigentlich alles schon beantwotet, wenn auch nicht bis ins letzte Detail:
    - Es gibt keine fertig kompilierte Version von HPHPc, ich konnte zumindest keine finden.
    - Daher muss man das Programm aus dem Quellcode selbst kompilieren, der sich bis zu einem gewissen Commit von 2013 im verlinkten HHVM-Repository befand.
    - Um HPHPc zu kompilieren sind sehr wahrscheinlich bestimmte Tools und Bibliotheks-Abhängigkeiten notwendig, es kann also schnell zum Krampf ausarten eine passende Build-Umgebung aufzubauen.
    - Das Docker-Template nimmt einem diese Arbeit ab, indem es eine funktionerende Build-Umgebung für HPHPc in einem Docker-Container konstruiert und HPHPc darin kompiliert.
    - Das Resultat wird sehr wahrscheinlich eine Linux-Version des Programms sein, mit dem sich die PHP-Skripte letztendlich nach C++ übersetzen lassen.
    - Diese Variante habe ich deshalb verlinkt, weil sie sehr wahrscheinlich mit den wenigsten Kopfschmerzen verbunden sein wird. Natürlich kannst du auch versuchen das ganze selbst unter Windows zu kompilieren,
    das ist aber wahrscheinlich mit großem Abstand sehr viel aufwändiger als einfach diese Docker-Version zu benutzen.



  • hallo ich versuch das mit dem docker dauernd, aber wenn ich versuche die dockerfile zu entpacken krieg ich ständig fehlermeldungen 😞



  • Wieso versuchst du ein textfile zu entpacken?!



  • Cardiac schrieb:

    Wieso versuchst du ein textfile zu entpacken?!

    ich versuch das dockimage zu öffnen

    hab mir das übrigens auf ubuntu versucht, wie das dort beschrieben ist
    bekomme die Fehlermeldung

    standard_init_linux.go:178: exec user process caused "permission denied"
    achso ich bin root nur zur info



  • [quote="Finnegan"]

    Siralle schrieb:

    - Das Resultat wird sehr wahrscheinlich eine Linux-Version des Programms sein, mit dem sich die PHP-Skripte letztendlich nach C++ übersetzen lassen.
    - Diese Variante habe ich deshalb verlinkt, weil sie sehr wahrscheinlich mit den wenigsten Kopfschmerzen verbunden sein wird. Natürlich kannst du auch versuchen das ganze selbst unter Windows zu kompilieren,
    das ist aber wahrscheinlich mit großem Abstand sehr viel aufwändiger als einfach diese Docker-Version zu benutzen.

    Wie kann ich das denn anders kompilieren - vielleicht ging das besser denn Kopfschmerzen hab ich schon. Könntest du das kurz ausprobieren, wenn du dich mit Docker auskennst wirklich ich versuch jetzt schon seit 2 Wochen dieses Ding zu starten und das funktioniert einfach nicht 😞
    Danke!



  • ...
    docker installieren
    Wenn fertig, eine shell deiner wahl oeffnen und docker run --rm -it awirth/hphpc:latest /hphpc/test/quick_start.sh eintippen => ferig

    Eine weitere moeglichkeit ist, das repo direkt vom hub zu nehmen.

    Verwendung steht in der readme...

    Siralle schrieb:

    standard_init_linux.go:178: exec user process caused "permission denied"

    Google gibt mir ungefaehr 40 results die auf github issues linken...

    Siralle schrieb:

    Wie kann ich das denn anders kompilieren - vielleicht ging das besser denn Kopfschmerzen hab ich schon.

    Wenn du es nicht schaffst einen docker container zu starten und den kram darin auszufuehren, schaffst du es definitiv nicht, HPHPc selbst zu kompilieren.

    Bei mir funktioniert es ohne probleme.



  • [quote="Cardiac"]...
    docker installieren
    Wenn fertig, eine shell deiner wahl oeffnen und docker run --rm -it awirth/hphpc:latest /hphpc/test/quick_start.sh eintippen => ferig

    er kennt das Verzeichnis awirth/hphpc nicht und das andere Verzeichnis kennt er auch nicht, was kann ich da tun?



  • Die docs von docker lesen, waere fuer den Anfang wohl schonmal genug.



  • ja das will ich ja, dazu muss ich aber erst run machen und dann build



  • Siralle schrieb:

    und dann build

    liste step by step auf, was du machst und stell eine praezise frage.

    "Das geht nicht!!11" Ist keine praezise frage.



  • Cardiac schrieb:

    Siralle schrieb:

    und dann build

    liste step by step auf, was du machst und stell eine praezise frage.

    "Das geht nicht!!11" Ist keine praezise frage.

    das geht nicht hab ich nicht geschrieben, ich habe meine Fehlermeldungen gepostet und auch docker build gepostet. Andere Frage hast du eine Emailadresse wenn ich dir geht, könnte ich dir eventuell ein paar Zeilen php schicken und du könntest mir die von hphpc erstellte c++ zurückschicken - glaub das wäre am simpelsten



  • Nein.

    DU willst den kram uebersetzt habe, DU uebersetzt ihn. Wenn du an solch simplen dingen scheiterst, und nichtmal die eigeninitiative hast, dich mit einer simplen fehlermeldung ausseinander zu setzen, werde ich das in keinerweise unterstuetzten.

    Siralle schrieb:

    [...] und auch docker build gepostet

    du hast ja nichtmal die readme vom docker-HPHPc repo gelesen UND VERSTANDEN.

    Cardiac schrieb:

    liste step by step auf, was du machst und stell eine praezise frage.

    Deine Antwort auf diese Aufforderung:

    Siralle schrieb:

    mimimi...schwafel...mimimi....

    Wenn du nicht willst das dir geholfen wird, dann mach gar nicht erst einen post auf.