IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Utiliser Composer sans terminal (avec un exec PHP) ?
Options
toluol
posté 4 Oct 2018, 15:30
Message #1


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 790
Inscrit : 14 Nov 2003
Lieu : Genève
Membre no 11 656



Bonjour,

je ne suis pas qualifié dans ce domaine, mais une demande un peu bizarre laugh.gif : je cherche à ajouter/effacer une dépendance Composer depuis un script php (donc, depuis un browser et sans terminal) en local.
J'utilise normalement le terminal comme tout le monde, mais là... j'expérimente un peu ! ^^

shell_exec() me semblait tout indiqué pour cela, mais encore faudrait-il avoir accès à la commande "composer" sur le serveur local (MAMP)... et c'est là que je bloque.

Code
chdir('/Users/moi/Documents/Sites/test');
$file = fopen ("composer.json", "w");
$content =
'{
    "name": "moi/test",
    "autoload": {
        "psr-4": {
            "App\\\": "app/"
        }
    },
    "require": {'.
        "slim/slim": "^3.10",
        "slim/twig-view": "^2.4",
        "swiftmailer/swiftmailer": "^5.4",
        "respect/validation": "^1.1",
        "slim/csrf": "^0.8.3"
    '}
}';
fwrite($file,$content);
fclose($file);
shell_exec('composer install');


la commande "composer", évidemment, ne fonctionne pas.
J'ai même tenté un "shell_exec('curl -sS https://getcomposer.org/installer | php');", sans grand espoir... Ou utiliser le fichier .phar avec php composer.phar install

J'ai trouvé ce post intéressant sur github. Mais comme c'est trop avancé pour moi, je n'ai pas su en tirer quoique ce soit. Pourtant, la solution semble y être. Si quelqu'un peut m'éclairer là-dessus...

merci.


Go to the top of the page
 
+Quote Post
yponomeute
posté 5 Oct 2018, 09:38
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 969
Inscrit : 26 Jan 2011
Lieu : Pollachius virens
Membre no 164 083



Il faut déjà commencer par regarder si composer est bien dans le PATH utilisé par shell_exec

Donc avant toute chose vérifier le résultat de

Code
shell_exec('echo $PATH');


Si composer ne s'y trouve pas il faut remédier à ce premier problème.


--------------------
MBP 2017 15" avec clavier pourri et touchbar inutile
Go to the top of the page
 
+Quote Post
toluol
posté 5 Oct 2018, 10:40
Message #3


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 790
Inscrit : 14 Nov 2003
Lieu : Genève
Membre no 11 656



je comprends un peu le principe.

Code
echo shell_exec('echo $PATH');

m'affiche :
Citation
/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.


Sur le terminal, en revanche...
Code
echo $PATH

m'affiche :
Citation
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin


Dans le terminal, en faisant un ls dans /usr/local/bin, je trouve bien composer... En revanche, pour le site en local, je ne vois pas bien comment procéder pour vérifier... unsure.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 16th July 2019 - 09:41