PHP-code zu konvertieren mit PHP, JS

Brauche ich etwas PHP-code zu konvertieren einige PHP in JS.

  • Funktionalität - ich bin mit gängigen PHP-Funktionen aus php.js
  • syntax - ???

Das Problem ist die Konvertierung der syntax. Ich brauche nicht die volle syntax von PHP, wohlgemerkt, keine Notwendigkeit für die Unterstützung von Klassen-Definitionen/Erklärungen. Hier ist eine kleine Checkliste, was muss-Konvertierung:

  • "." soll "+" (string-concat)
  • "->" sollte "." (Objekt-operator)
  • "::" sollte "." (Klasse operator - nicht wirklich erforderlich)

Bitte beachten Sie, dass der resultierende code ist ziemlich unabhängig von der PHP-Umgebung, so dass keine "was ist, wenn es nutzt eine PHP-Klasse?".

Ich verlange nicht, für den vollständigen code, nur ein Tipp in die richtige Richtung, um diese Art der Konvertierung; ich dachte über den Einsatz einer state-Maschine/Motor.

Wenn du neugierig bist, warum ich bin drängen code auf der Seite Benutzer: ich brauche eine dynamische Weise zu ändern der Sichtbarkeit bestimmter Elemente unter bestimmten Bedingungen. Mein plan ist, dies zu tun, ohne diesen code ausführen, server-Seite und einer unnötigen ajax-Aufrufe.

Edit: Blick Menschen. Ich weiß nicht mit AJAX klingt lächerlich, zu Ihnen, aber die Welt funktioniert nicht auf den hype und schön klingenden design-Bedingungen (=ajax). Ich kann mir einfach nicht leisten, jeden einzelnen Nutzer polling meinem server 5-bis 10-mal pro Sekunde, nur für meinen server zurück, mit "ja" oder "Nein" beantworten. Beachten Sie, dass die Umschaltung asynchron ist, und ich kann keinen Puffer für die AJAX-Aufrufe.

Edit 2: ich bin sicher, dass das, was ich Tue, ist der beste Weg in meiner situation. Es gibt kein "vielleicht besser", so beenden Sie die Buchung nicht-Konstruktive Kommentare. Ich kann nicht ins detail, als ich so schon. Die Umstellung von PHP-code, der JS ist einfach eine Frage der Verkürzung user input; wir brauchen nur einen Ausdruck, konvertieren Sie Sie dann in welcher Sprache notwendig ist (in diesem speziellen Fall von PHP nach JS). Die Bedingungen, wie das funktioniert, wird nicht ändern unabhängig davon, ob ich beschreiben Sie das system herunter, um die API-Spezifikationen, und überschwemmen das Thema mit nutzlos (für dich) Prototyp docs wird nicht helfen, überhaupt.

Auch, für diejenigen, die denken, diese Idee kam mir nach dem aufwachen bilden einige träumen, wissen, dass diese überprüft wurde zwischen der technischen Entwicklung und QA, also bitte nicht abweichen, in nicht existierenden design-Fragen.

Edit 3: Beispiele (original-PHP-code und erwartete Ausgabe):

  • (original) -- (Umgerechnet)
  • 5=="test" -- 5=="test"
  • '$'.(func(12)*10) -- '$'+(func(12)*10)
  • Fields::count()==5 -- Fields.count()==5
  • $this->id==5 -- this.id==5

Etwa das Letzte Beispiel, Mach dir keine sorgen über Kontext/Rahmen, es ist richtig. Beachten Sie auch, dass die Ausdrücke, die möglicherweise seltsam Aussehen; dies ist, weil Sie sind Ausdruck; eine einzige Zeile code muss einen Wert zurückgeben, und das erklärt das fehlen einer EOL-Situation (;) und die mehrfache Nutzung ein boolescher Wert zurückgegeben wird. (exotische Sachen wie backtick-operator execution, PHP-tags, echo, die, Liste, etc.. auf Zweck)

  • Vielleicht bin ich zu konservativ, aber dieses klingt wie eine Idee, dass Essen viel mehr Zeit, als es jemals sparen.
  • Das system arbeitet auf sehr kleine Ausdrücke, in der Regel ähnlich wie "return fld(45)->test=='aaa';", jedoch, es gibt eine riesige Menge dieser Wechsel an der gleichen Zeit, lädt der AJAX-Anfragen und throbbers 🙂
  • Es gibt auch den zusätzlichen Vorteil, dass client-intensive Logik/Ausführung auf client-Seite, Schonung von server-und Netzwerk-Auslastung.
  • Vielleicht solltest du uns sagen, warum Sie dies tun wollen unglaublich wahnsinnige Sache. Warum würden Nutzer werden Anfragen 5-10 mal in der Sekunde? Was, genau, ist die Anwendung, die Sie erstellen? Wahrscheinlich gibt es andere, bessere Möglichkeiten, dieses zu erhalten getan.
  • Warum sollte ich mich in diesem viel detail? Ich habe bereits angegeben, die Bedingungen für die Benutzung, und durch Angabe von mehr details, die diese Bedingungen nicht ändern. Nun, haben Sie etwas dagegen, mit Schwerpunkt auf die Diskussion dann eher unseriös "was wäre wenn"? Die Entscheidung, geleitet durch eine Bewertung von 3 Personen (von denen 2 bewertet den technischen Aspekt), so beenden Sie bitte beschuldigt mich, nicht zu wissen, was ich Tue. Ich könnte nicht so viel dekoriert stackoverflow-Benutzer, aber das bedeutet nicht, ich bin ein Neuling, Kind spielt mit PHP/JS.
  • können Sie nach ein paar komplette Beispiele von dem, was konvertiert werden soll? Haben Sie als Gebäude eine vereinfachte "meta" - Sprache, die Ihre Bedürfnisse deckt und kompilieren können in beide JS und PHP? Das könnte einfacher sein, zu tun, als den Nachweis aller Arten von Sprache Macken mit regulären Ausdrücken oder so.
  • Pekka, ich habe betrachten eine meta-Sprache, entschied sich aber auf den Einsatz von PHP, wenn man bedenkt es wird b ausgeführt, server-Seite mehr oft; plus, Konvertierung von PHP zu JS wäre einfach eine Frage der Strippen aus Sachen (wie $) oder kleine Ersatz (-> und ::). Language-wise, brauche ich nicht zu unterstützen, exotix/Tiefe Syntax wie heredoc - (& co), Klasse/Funktion Definitionen. Ich brauche nur die Unterstützung der Standard-expression-syntax, aber einschließlich der Objekt-Operatoren und-Funktionen.
  • Ich verstehe nicht den Punkt der Frage. Brauchen Sie zu kommen mit einer Liste von all den Bedingungen, die Sie benötigen, zu unterstützen. Herauszufinden, wie man die Umrechnungen für alle und dann machen Sie. Also ja, eine state machine, hört sich gut an. Bin ich etwas fehlt? Sie erwarten zu hören, insbesondere Vorsichtsmaßnahmen, wie wenn jemand dies schon getan?
  • Vielleicht? Ich bin mir ziemlich sicher ich bin nicht der erste, das zu tun diese Art der Sache (vielleicht erstmal in PHP an JS, aber definitiv nicht die erste). Der Kerl oben bereits unterschieden von einem Zustand der Maschine, indem er über reguläre Ausdrücke, die die design-Entscheidung ist es, die ich brauche, um zu entscheiden, über die Umsetzung, mit ein wenig Hilfe von Euch. Wenn wir Experten bei der compiler-Theorie und design, sicherlich jemand muss beweisen, dass die richtige beraten, was ich brauche?
  • Das ist in Ordnung, aber Sie müssen verstehen, das Publikum und nicht begraben die Führung. Sicherlich, Sie können nicht erwarten, dass die compiler-Experten 24/7 online warten für Ihre Frage. Ich bin davon überzeugt, dass Sie nicht möchten, dass jemand nur die hand, die Sie einige code, aber Sie führen aus mit einer Formulierung, die etwas anderes sagt: "ich brauche etwas PHP-code zu konvertieren einige PHP in JS." Ich sage nicht, dass dies ist der Grund, warum man Probleme w/ diese Frage. Allerdings gibt es ein Kommunikationsproblem zwischen allen beteiligten. Anders ausgedrückt, Sie präsentieren das problem falsch.
  • Auch wenn die Verwendung von regulären Ausdrücken bedeutet nicht unbedingt, es ist nicht eine state machine.
  • Wenn ich interpretiere die Beschreibung des Problems richtig (es ist schwer, weil man nicht wirklich angeben, was Sie erreichen wollen, genau, aber nur die von Ihnen vorgeschlagene Lösung), dann klingt es für mich wie Sie wollen, um irgendeine Art der Regel-basierten engine, die bestimmen, eine Strömung in der Benutzeroberfläche (eine Art interaktives Anfrage vielleicht?). Ist das richtig?
  • George Marian, ich erwarte nicht, dass jede Hilfe an alle. Ich hatte nicht erwartet, die meisten alle, Leute, die missverstehen, die Frage und Kennzeichnen Sie die schließende. Wenn die Leute nicht/nicht beantworten wollen, sind Sie herzlich willkommen, zu verlassen. In der Tat, ich erinnere mich nicht, zwingen niemanden zu helfen. Nur nicht muck Dinge für andere, danke. (natürlich bin ich nicht speziell auf dich)
  • wimvds - ja, Sie sind richtig. Eigentlich habe ich klar definiert hat, was ich brauche; konvertieren bestimmte grundlegende PHP an JS. Doch die Menschen scheinen zu wollen, um weiter zu gehen und Fragen "warum". Das ist für mich in Ordnung, was nicht fein ist, wenn das "warum" verwandelt sich in "warum haben Sie nicht einfach...".
  • George, abgesehen von der Dynamik von regulären Ausdrücken, wie kann sich ein Staat-Motor und einem regulären Ausdruck arbeiten auf die gleiche saite an der gleichen Zeit? Das heißt, ich in der Regel vermeiden, reguläre Ausdrücke, da kann ich einfach am Ende nicht in der Lage, Sie zu erhalten (vor allem, wenn Sie kompliziert). Natürlich, das ist einfach eine persönliche Angelegenheit. Was ich brauche; am Ende des Tages brauche ich nur den funktionierenden code, ob ich es geschrieben habe, ausgeliehen oder jemand anderes Tat es nicht, interessiert mich auch sehr (andere als die Akkreditierung und Zulassung).
  • Ich schrieb PHP an JS AST-basierte übersetzer, die es erlaubt PHP-code, als wenn es war JavaScript, mit Babel.

InformationsquelleAutor Christian | 2010-07-13
Schreibe einen Kommentar