PHP in Anwendung integrieren - machbar?
-
Hi,
ich plane eine Anwendung zu schreiben (ein Textbearbeitungsprogramm in C/WinAPI geschrieben), welches sehr dymanisch sein soll. Dazu soll man sich Snippets programmieren können, wozu man natürlich eine Programmiersprache braucht. Beispiel:
Der Benutzer des Programms bearbeitet gerade eine test.txt, schreibt in das Textfeld meines Programms "Hello World" und drückt danach Strg+Q. Danach soll Hello World umgedreht werden, also durch "dlroW olleH" ersetzt werden. Dazu muss er sich erst ein Snippet programmieren, sodass beim Tastendruck von Strg+Q auch der String umgedreht wird. Und dazu braucht man eine Programmiersprache, wozu sich PHP von der Einfachheit und gleichzeitigen Mächtigkeit meines Erachtens gut anbieten würde. So programmiert er dann einfach:
<?php print strrev($CURRENT_SELECTION); ?>wobei die Variable $CURRENT_SELECTION von meinem Programm bereit gestellt wird, nämlich in unserem Beispiel "Hello World". Das ganze wird dann umgedreht und ausgegeben, was mein Programm wieder "abfängt" und zum Ersetzen der Markierung verwendet.
Ich hoffe soweit ist mein Plan einigermaßen klar, bin nicht der beste im erklären
Wenn nicht bitte melden!Nun ist meine Frage, ob man den PHP-Quellcode leicht in die Anwendung integrieren kann. Ich habe schon daran gedacht, das ganze über die Kommandozeile zu lösen, z.B.
php -r "strrev('Hello World!');"allerdings ist das viel zu langsam, man muss ne knappe Sekunde warten, bis die PHP-Exe das Ergebnis ausspuckt und das ist einfach zu lange und stört beim munteren Tippen. Also müsste man PHP direkt integrieren, als DLL oder sonstwas.
Hoffe ihr könnt mir da Tipps und Anregungen geben.
Danke,
MfG, Herr-Vorragend
-
mit php sollte man keine applikationen scripten, da sollte man sprachen wie lua, io oder python und perl verwenden
php ist ungeeignet für alles was über eine webapp hinaus geht,
und selbst für webapps ist es unpassend, da es überaus fehlerbehaftet ist
-
@HerrV
PHP braucht einen Server mit PHP Installation damit es läuft. Das musst du beachten.@rOnny
Was ist denn so fehlerhaft an PHP, dass es deiner Ansicht nach sogar schon für Webanwendungen unpassend ist?
-
Herr-Vorragend schrieb:
Nun ist meine Frage, ob man den PHP-Quellcode leicht in die Anwendung integrieren kann. Ich habe schon daran gedacht, das ganze über die Kommandozeile zu lösen, z.B.
php -r "strrev('Hello World!');"allerdings ist das viel zu langsam, man muss ne knappe Sekunde warten, bis die PHP-Exe das Ergebnis ausspuckt und das ist einfach zu lange und stört beim munteren Tippen. Also müsste man PHP direkt integrieren, als DLL oder sonstwas.
Hoffe ihr könnt mir da Tipps und Anregungen geben.
schreibe im ein php programm nach den moto:
while(true) if datei_mit_auf_gabe_ist_neu include_sie else warte eine weiledadurch hast du dise verzögerung durch das laden der php cli nicht mehr,
das abfragen der ob die datei neu ist nur eine option, du kannst genauso mit pipe lines arbeiten und dann in den php-code eval aufrufen
(ich glaube man kann sogar direkt an die php cli pipen)
oder tcp socket
oder sharedmem
-
-
So, hab ne Lösung.
@r0nny: Wieso sollte PHP ungeeignet und fehlerbehaftet sein? Ich finde die Syntax recht leicht, weitaus leichter als bspw. die von Perl. Und Fehler dürften eigentlich nicht wirkliche viele drinnen sein, wenn man sich überlegt, dass heutzutage fast jede Website PHP verwendet. Ich programmiere selbst schon seit Jahren PHP und mir sind keine Fehler aufgefallen.
@deetee: Ich will einfach nur die exe laufen willen, dazu brauch ich kein Apache oder sonstwas.
@Gerard: Du hast mich auf die Idee gebracht. Ich hab jetzt ein PHP Script geschrieben, welches mit dem Start des Programms von der php.exe ausgeführt wird. Dieses verwendet Sockets und wartet auf Verbindungen und danach auf Daten, quasi ein Socketserver. Mein Programm schickt ihm dann PHP-Scripte, welches der Socketserver ausführt (eval) und zurücksendet. Funktioniert sehr gut.
@Prof84: Dann hab ich ja wieder das beschriebene Problem, dass die Ausführung zu lange dauert.
Danke, MfG
-
Hm, ich hab eben auch gesehn, dass die php.exe die Option "-a" hat, was Interaktiv-Modus bedeutet, dabei ließt es von STDIN und schreibt in STDOUT, wäre vielleicht noch praktischer...
-
pass aber auf das sich niemand von extern auf dein php Socketserver connecten kann,
-
Ne der lauscht nur über localhost und schaut, ob der, der sich verbindet, auch von localhost kommt.
Btw.: Hat jemand Interesse, an dem Projekt mitzuarbeiten? Glaub nicht, dass ich das alleine schaffe...
-
wieso das rad neu erfinden, schreibe doch liber die verbesserung die du vorhast als ein plugin für schon verfügbaren editor
schaue dir doch mal z.b. jedit an, die idee die du hast läst sich da locker als plugin verwirklichen
wobei jedit schon ein mächtige makro sprache beherrscht
-
Naja, der Hintergrund ist der, dass ich letztens über TextMate gestolpert bin (http://macromates.com/) und mir die Screencasts angeschaut hab. Ich war eben begeistert von dem schönen Design und vor allem von den ganzen Funktionen, die einem Programmierer das Leben ganz offensichtlich leichter machen - und genauso enttäuscht, als ich gesehn hab, dass es das Programm ausschließlich für MacOSX gibt. Also dachte ich mir, ich könnte mir das doch als sehr großes Projekt nehmen und einfach die Windows-Version dazu programmieren, d.h. ein Texteditor, mit sehr schlichtem Design und all diesen hohen Funktionalitäten.
-
ich habe da jetzt nix gesehen was z.b. jedit nicht per plugin auch kann/könnte
man muss sich nur an die gui gewöhnen und etwas zeit verbringen in plugin manager (es sind sehr viele nützliche plugins bei, von den man noch nicht wuste das man sie braucht)den mac os style kann er glaube ich auch laden
-
Hi,
hab grad gesehen, dass sich jemand die Mühe macht, ein TextMate für Windows zu schreiben, und offensichtlich schon recht große Erfolge verbucht hat:
http://intypelog.blogspot.com/
Beispiel:http://intype.martincohen.info/videos/html-snippets-take-1/Von daher überlass ich ihm das lieber mal

Gibt es denn ein Plugin für jEdit, mit Autocompletion und dem ganzen Schnick Schnack aus dem Video? Hab grad die Plugins von plugins.jedit.org überflogen und nichts entsprechendes gefunden.
Und gibt es Syntax-Highlighter für PHP und JavaScript? Weil dann würd ich mir die Wartezeit auf InType mit jEdit verkürzen
MfG