laravel Artisan命令使用

生成命令
php artisan make:command SendEmails
命令得结构
<?php

namespace App\Console\Commands;

use App\User;
use App\DripEmailer;
use Illuminate\Console\Command;

class SendEmails extends Command
{
    /**
     * 命令行的名称及签名。
     *
     * @var string
     */
    protected $signature = 'email:send {user}';

    /**
     * 命令行的描述
     *
     * @var string
     */
    protected $description = 'Send drip e-mails to a user';

    /**
     * 创建新的命令行实例。
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * 执行命令行。
     *
     * @param  \App\DripEmailer  $drip
     * @return mixed
     */
    public function handle(DripEmailer $drip)
    {
        $drip->send(User::find($this->argument('user')));
    }
}
在 routes/console.php 中增加闭包命令
Artisan::command('build {project}', function ($project) {
    $this->info("Building {$project}!");
});
定义命令参数
protected $signature = 'email:send {user}';
定义命令参数选项
/**
 * 命令行的名称及签名。
 *
 * @var string
 */
protected $signature = 'email:send {user} {--queue}';

带值的选项

/**
 * 命令行的名称及签名。
 *
 * @var string
 */
protected $signature = 'email:send {user} {--queue=}';

运行示例:

php artisan email:send 1 --queue=default
定义命令参数数组
email:send {user*} // 执行示例:php artisan email:send foo bar

email:send {user} {--id=*} // 执行示例:php artisan email:send --id=1 --id=2
获取命令中参数的值
// 获取一个指定的选项值...
$userId = $this->argument('user');
$queueName = $this->option('queue');

// 获取所有的选项值...
$options = $this->options();
$arguments = $this->arguments();
交互式命令输入
public function handle()
{
    $name = $this->ask('What is your name?'); // name 的值为用户在控制台中输入的值
}
程序调用命令
$exitCode = Artisan::call('email:send', [
    'user' => 1, '--queue' => 'default'
]);

// 或

Artisan::call('email:send 1 --queue=default');

传递数组

$exitCode = Artisan::call('email:send', [
    'user' => 1, '--id' => [5, 13]
]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值