30
votes

I'm trying to execute code within my Lumen install via the command line. In full Laravel , I've read that you can use commands to achieve this via "make:command", but Lumen does not seem to support this command.

Is there anyway to enable this command? Failing that, what's the best way of running code from the CLI in Lumen?

Thanks

3
Lumen does not have builtin Commands support - user1016265
There is a package flipbox\lumen-generator however I am having hard time registering this package inside bootstrap\app.php. Probably it's because not compatible with lumen:5.7.* - xiarnousx

3 Answers

47
votes

You can use the artisan CLI in Lumen as the same way as in Laravel but with fewer built-in commands. To see all built-in commands, use the php artisan command in Lumen.

Although there is no make:command command at Lumen, you can create your custom command:

  • Add new command class inside the app/Console/Commands folder, you can use the sample class template of the framework serve command

  • Register your custom command by adding your created class to the $commands member inside the app/Console/Kernel.php file.

Except the command generating, you can use the Laravel docs for commands when working with Lumen.

13
votes

Here is a template for a new command. You can just copy and paste this in to a new file and start working. I tested it on 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.');
    }
}

Then register it on the Kernel.php file.

/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
   \App\Console\Commands\CommandName::class
];
10
votes

When you create your command class use this:

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;

Instead of what was described above about using serve command example