首先,我们要了解专门有一个系统自带命令 make:command 来创建自定义命令文件:
php artisan make:command WelcomeMessage --command=welcome:message
该命令的第一个参数就是要创建的 Artisan 命令类名,还可以传递一个选项参数 --command 用于自定义该命令的名称(不指定的话会系统会根据类名自动生成)。执行完该命令后,会在 app/Console/Commands 目录下创建一个 WelcomeMessage.php 文件:
<?php namespace App\Console\Commands; use Illuminate\Console\Command; class WelcomeMessage extends Command { /** * 命令名称,在控制台执行命令时用到 * * @var string */ protected $signature = 'welcome:message'; /** * 命令描述 * * @var string */ protected $description = 'print welcome message'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * 命令具体执行逻辑放在这里 * * @return mixed */ public function handle() { // } }
注册命令类
创建完 Artisan 命令类后,还需要在 app/Console/Kernel.php 中注册才能使用,就像编写好控制器方法后,需要在路由文件中定义路由指向它一样。
打开 app/Console/Kernel.php,将新创建的命令类 WelcomeMessage 添加到 $commands 完成注册:
protected $commands = [ App\Console\Commands\WelcomeMessage::class ];
现在,运行 php artisan list 就可以看到 welcome:message 命令了。