Laravel Artisan 命令行:命令里互相调用 2 个改进

问题#

能否在一个 Artisan 命令中调用另一个 Artisan 命令?

回答#

在一个 Artisan 命令中调用其它 Artisan 命令。与在其它代码中调用命令类似,可直接调用命令对象实例的 call 方法即可。call 方法接受命令名和数组形式的选项:

/**
 * 执行控制台命令
 *
 * @return mixed
 */
public function handle()
{
    $this->call('email:send', [
        'user' => 1, '--queue' => 'default'
    ]);

    //
}

如果要实现调用命令的静默输出,可以使用 callSilent 方法。callSilent 的使用方法同 call

$this->callSilent('email:send', [
    'user' => 1, '--queue' => 'default'
]);

参考#

本文为 Wiki 文章,邀您参与纠错、纰漏和优化