web-dev-qa-db-fra.com

Marque Lumen: commande

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

25
trajan

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.

39
Hieu Le

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

8
Muhammad

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
];
6
chemisax