Utiliser le résultat d'une commande dans une autre commande artisan
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
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 :)
Vous ne pouvez pas répondre à ce sujet.