PHP in CLI, and external editor.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP in CLI, and external editor.

par Hywan » 21 juil. 2008, 23:30

En fait, il faudrait même prévoir un système pour que l'utilisateur écrive ce qu'il veut. C'est lui qui va choisir son éditeur externe, pas moi.

Hmm, je sens que je vais m'amuser 2 minutes :?.

par Sékiltoyai » 21 juil. 2008, 19:10

En fait le problème c'est que vi est un pur programme en ligne de commande (ce que je ne pense pas pour emacs, je pense qu'il est assez évolué pour se lancer dans sa propre fenêtre), il faut donc lui ouvrir son terminal en même temps de l'appeler, donc sous Mac OS X :
/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal /usr/bin/vim &
Le problème, c'est que autant les shells (bash, sh, etc…) sont assez présents sur tous les systèmes (enfin presque…), autant les applications graphiques pour gérer un terminal sont souvent très différentes, même au sein d'un même système (rien que pour linux le terminal graphique par défaut est différent pour KDE et pour GNOME, sans compter les systèmes en ligne de commande où il faudrait pouvoir lancer vim sur l'un des terminaux déjà ouverts… Il faudra gérer ces cas particuliers si tu veux porter ta solution…

par Hywan » 21 juil. 2008, 19:00

Hmmm ok. Je vais jeter un coup d'œil :).

par momox » 21 juil. 2008, 17:57

Après tests, la syntaxe suivante ouvre un nouveau terminal avec vi sous gnome.
system('gnome-terminal -e vi');
En trouvant l'équivalent sous Mac, tu devrais pouvoir faire de même ;)

par momox » 21 juil. 2008, 17:51

Je viens de faire divers tests sous gnome.
En faisant par exemple

Code : Tout sélectionner

gnome-terminal -e vi
il me lance vi.
Je vais continuer les tests et voir si je peux te trouver quelque chose qui corresponde ;)

par Hywan » 20 juil. 2008, 22:47

Bien.
Par un beau matin d'été, alors que tu utilisais PHP en ligne de commande, une envie soudaine te vient : tu souhaites utiliser un éditeur externe depuis PHP, c'est à dire lancer vi par exemple depuis PHP.

Ne chercher pas une utilité particulière, je veux juste le faire ;-).

par momox » 20 juil. 2008, 22:34

Ce que j'aimerais, afin de pouvoir t'aider, c'est que tu m'expliques ta démarche :?
Ce que tu souhaites, c'est ouvrir un fichier dans un éditeur a partir d'un script ?

par Hywan » 20 juil. 2008, 22:29

@momox : en fait je vois Vi, mais ce que je tape dedans n'apparaît pas à l'écran (cf. Vim : Warning: Output is not to a terminal), et oui. Le problème ne vient pas de la fonction utilisé (system, exec, peu importe), mais de la gestion des sorties vers le terminal par PHP.

Les éditeurs externes sont particuliers, car ils ne doivent pas prendre la main. C'est tout ce que je sais. Je demandais juste plus d'informations sur l'utilisation, la mise en place, et le fonctionnement des éditeurs externes. Je sais que Thunderbird le propose, mais je ne me suis pas encore penché dessus (et l'idée de me lire toutes les sources me fatigue d'avance :P). D'autant plus qu'en PHP, ce sera encore différent.

par Sékiltoyai » 20 juil. 2008, 20:21

Personnellement, pas très bien compris :P
Mais t'en fais pas, en septembre c'est la reprise et PHPFrance sera un peu plus actif parce-que là euh..... tout le monde est aller sous les cocotiers :lol:
Et tu penses que ton message va faire avancer son problème ? :-/

par chrislabricole » 20 juil. 2008, 19:12

Personnellement, pas très bien compris :P
Mais t'en fais pas, en septembre c'est la reprise et PHPFrance sera un peu plus actif parce-que là euh..... tout le monde est aller sous les cocotiers :lol:

par momox » 20 juil. 2008, 19:09

Ce que je voulais dire par la, c'est que la fonction system ne t'affiche pas le résultat, elle te le revoie au travers de la variable spécifiée dans le prototype de la fonction en seconde position.
De ce fait, il est normal que Vi ne soit pas vu par toi même.
Emacs doit fonctionner différement et utiliser une librairie qui lui fait "prendre" la main sur la fenêtre parente je pense ;)
Enfin, ceci n'est que pure supposition.

Pour revenir au sujet principal, qui est le lancement d'un programme externe et non php via la fonction system, c'est tout a fait possible vu qu'ils sont pour la plupart lancables depuis le terminal.
Par contre, attentions aux installations avec suPHP, car je ne pense pas que le déplacement soit autorisé, a vérifier sur bécane équipée ;)

par Hywan » 20 juil. 2008, 18:47

Euh, hors-sujet … ??

C'est moi qui est mal formulé mon problème, ou … :? ?

par momox » 20 juil. 2008, 18:31

Prototype de la fonction system:

Code : Tout sélectionner

string system ( string $command [, int &$return_var ] )
Premier élèment de réponse ;)

PHP in CLI, and external editor.

par Hywan » 20 juil. 2008, 18:11

Hey :),

Je m'amuse un peu avec le mode CLI de PHP, et a fortiori avec les fonctions systèmes (system(), exec(), etc.). Je n'ai pas réussi — depuis PHP — à ouvrir un éditeur genre vi sans que cela provoque la fin du script PHP (ou le plantage).

Par exemple :

Code : Tout sélectionner

$ php -a Interactive mode enabled <?php echo 'salut'; salut system('cd ~/Desktop; vi Toto'); Vim: Warning: Output is not to a terminal
Ici vi s'ouvre, mais le contrôle est réduit. Je peux l'utiliser comme il faut, sauf que je ne vois rien de ce que je tape.
Avec Emacs, je n'ai pas eu ce problème, mais tout le monde sait qu'Emacs c'est le mal, alors bon …
Et d'une manière général, on peut souhaiter utiliser Eclipse, Notepad, ou d'autres programmes du genre. Est-ce quelqu'un a déjà utiliser des éditeurs externes pour ses programmes ? Merci :).