Laravel 6

Utiliser le résultat d'une commande dans une autre commande artisan

Avatar de CinquièmeDimension
CinquièmeDimension

Salut à tous!

Sur un projet Lumen 9 (j'ai posté dans Laravel 6 mais c'est la même):

J'ai fait des commandes artisan personnalisées et je veux créer une commande qui centralisera les autre (qui pourront toujour être utilisées individuellement). Mais je n'arrive pas à stocker le résultat d'une commande vers une autre:

Dans le handle() de ma masterCommand

$output = new BufferedOutput;
$files = $this->call('process:command123');
$output = $output->fetch();
$this->info($output);
if($output == ...

Dans le handle de ma commande process::command123

[...]
$this->info($count);

J'ai essayé 50 trucs differents mais je ne suis arrivé à aucun résultat. Pas moyen de faire un return, ni de capter l'info dans une variable pour la tester...

Si quelqu'un a une idée, je suis preneur :D

Posté il y a 2 mois
Avatar de CinquièmeDimension
CinquièmeDimension

Au temps pour moi, en fait on peut très bien faire un return. Du coup ça donne:

$output = $this->call('process:command123'); Et la commande finit avec return.

Je ne sais pas si c'est que le premier essai que j'avais fait avec Artisan::call() ne fonctionnait pas ou le composer dump-autoload que j'ai fait plus tard qui a fonctionné mais maintenant ça fonctionne.

J'espère t'avoir aidé, toi qui tombe sur ce post en 2028...

EDIT: Désolé pour la fausse joie, mais en fait ca ne fonctionne pas. Quelques jours plus tard, en prod, ca ne fonctione pas... Je suis même passé de Lumen à Laravel vu que le GitHub de Lumen m'a tout sauf aidé... mais rien à faire. Donc, ben à l'ancienne: j'ai fait toutes mes fonctions sur une seule et même page ... :/

EDIT2: Euuu alors en fait, si. Ca fonctionne. Seulement ma première fonction contenait une connexion ssh et le ssh2_disconnect($connection); faisait tout crasher. Remplacé par $connection = null; unset($connection); ca fonctionne comme un charme :)

Posté il y a 2 mois

Vous ne pouvez pas répondre à ce sujet.