J'essaie d'exécuter du code dans mon installation Lumen via la ligne de commande. En entier Laravel, j'ai lu que vous pouvez utiliser des commandes pour y parvenir via "make: command", mais Lumen ne semble pas supporter cette commande.
Est-il possible d'activer cette commande? À défaut, quelle est la meilleure façon d'exécuter du code à partir de la CLI dans Lumen?
Merci
Vous pouvez utiliser la CLI artisan
dans Lumen de la même manière que dans Laravel mais avec moins de commandes intégrées. Pour voir toutes les commandes intégrées, utilisez la php artisan
commande dans Lumen.
Bien qu'il n'y ait pas de make:command
commande chez Lumen, vous pouvez créer votre commande personnalisée:
Ajoutez une nouvelle classe de commandes dans le app/Console/Commands
dossier, vous pouvez utiliser l'exemple de modèle de classe du framework commande serve
Enregistrez votre commande personnalisée en ajoutant votre classe créée au $commands
membre à l'intérieur du app/Console/Kernel.php
fichier.
À l'exception de la génération de commandes, vous pouvez utiliser Laravel docs pour les commandes lorsque vous travaillez avec Lumen.
Lorsque vous créez votre classe de commandes, utilisez ceci:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
Au lieu de ce qui a été décrit ci-dessus à propos de l'utilisation de serve command
exemple
Voici un modèle pour une nouvelle commande. Vous pouvez simplement copier et coller cela dans un nouveau fichier et commencer à travailler. Je l'ai testé sur Lumen 5.7.0
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class CommandName extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'commandSignature';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$this->info('hello world.');
}
}
Enregistrez-le ensuite dans le fichier Kernel.php.
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
\App\Console\Commands\CommandName::class
];