codecamp

建立自定义命令

自动创建类(Class)

要创建一个新的自定义命令,您可以使用 make:console 这个 Artisan 命令,这将会自动产生一个 Command stub 协助您开始创建您的自定义命令:

自动创建一个新的命令类

php artisan make:console FooCommand

上面的命令将会协助你自动创建一个类,并保存为文件 app/Console/FooCommand.php

在创建自定义命令时,加上 --command 这个选项,将可以指定之后在终端机使用此自定义命令时,所要输入的自定义命令名称:

php artisan make:console AssignUsers --command=users:assign

撰写自定义命令

一旦你的自定义命令被创建后,你需要填写自定义命令的 名称(name)描述(description),您所填写的内容将会被显示在 Artisan 的 list 画面中。

当您的自定义命令被执行时,将会调用 fire 方法,您可以在此为自定义命令加入任何的逻辑判断。

参数与选项

你可以通过 getArgumentsgetOptions 为自定义命令自行定义任何需要的参数与选项。这两个方法都会返回一组命令数组,并由选项数组的清单所组成。

当定义 arguments 时,该数组值的定义分别如下:

[$name, $mode, $description, $defaultValue]

参数 mode 可以是下列其中一项: InputArgument::REQUIREDInputArgument::OPTIONAL

当定义 options 时,该数组值的定义分别如下:

[$name, $shortcut, $mode, $description, $defaultValue]

对选项而言,参数 mode 可以是下列其中一项:InputOption::VALUE_REQUIRED, InputOption::VALUE_OPTIONAL, InputOption::VALUE_IS_ARRAY, InputOption::VALUE_NONE

模式为 VALUE_IS_ARRAY 表示调用命令时可以多次使用此选项来传入多个值:

InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY

这个命令将允许:

php artisan foo --option=bar --option=baz

模式为 VALUE_NONE 则表示将此选项纯粹作为一种有或无的「开关」使用:

php artisan foo --option

取得输入值(参数与选项)

当您的自定义命令执行时,您需要让您的应用程序可以访问到这些参数和选项的值,要做到这一点,您可以使用 argumentoption 方法:

取得自定义命令被输入的参数

$value = $this->argument('name');

取得自定义命令被输入的所有参数

$arguments = $this->argument();

取得自定义命令被输入的选项

$value = $this->option('name');

取得自定义命令被输入的所有选项

$options = $this->option();

产生输出

想要显示信息到终端屏幕上,您可以使用 infocommentquestionerror 方法。每一种方法将会依据它所代表的目的,分别对应一种适当的 ANSI 颜色。

显示一般消息到终端屏幕

$this->info('Display this on the screen');

显示错误消息到终端屏幕

$this->error('Something went wrong!');

询问式输入

您也可以使用 askconfirm 方法来提示用户进行输入:

提示用户进行输入

$name = $this->ask('What is your name?');

提示用户进行加密输入

$password = $this->secret('What is the password?');

提示用户进行确认

if ($this->confirm('Do you wish to continue? [yes|no]'))
{
    //
}

您也可以指定一个默认值给 confirm 方法,可以是 truefalse

$this->confirm($question, true);

调用其它命令

有时候您可能希望在您的命令内部调用其它命令,此时您可以使用 call 方法:

$this->call('command:name', ['argument' => 'foo', '--option' => 'bar']);
定时调用 Artisan 命令
注册自定义命令
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

环境配置

系统服务

哈希

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }