00:00
哪是命令行?Artisan。是love自带的命令和接口,它提供了相当多的命令来帮助我们构建LA应用,可以通过list命令查看所有可用的artist命令。我们在之前创建控制器就使用了R命令进行了创建的。现在我们看一下。P artisan。List,你不输入list可以啊,可以看到所有的可用的一个命令。有命令的使用啊方式,还有它的一个命令的一个说明。你在使用这个命令的时候。一定要注意啊,要在你的这个V,就是虚拟机的这个环境下去使用啊,这个虚拟机的环境去使用。不要在你本机环境去使用。啊,等级的话。你如果有PP脚本的话,当然你可以执行这个命令,但是你并不一定具备这个命令所需要的其他的一些环境啊。
01:01
啊。可以看到这个命令的文件是在这里啊,在我们的项目的这个目录下。嗯,它可以使用啊,对应命令的这个help,去查看每个命令的一个帮助页面。比如我们查看的一个帮助页面。好,这是他的一个帮助手册。有他的一个描述。和它的一些可用的选项。除了art提供的命令以外,我们还可以编写自己自定义的命令。命令一般位于这个APP目录council com目录。然后看一看这个目录。可以看到啊,这个目录下是没有卡曼斯目录,但是当我们通过artist命令去创建命令的时候,就会生成这个目录来看一下创建的命令,比如我们创建一个发送邮件的一个command的命令。
02:12
Pan make command。啊,这时候创建成功这里呢,就会多一个啊卡目录,然后我们对应创建的这个命令就会在这个目录下,那现在没有的话,你就关闭再打开刷新一下这个目录就可以了。点开这个文件,我们来看一下啊。啊,当我们创建完这个命令之后呢,优先要更改的是这两个选项啊,这两个选项一个是我们使用的命令的具体的一个名字,一个是我们写就说一个命令的描述。名命令的名字,我们一般就是说以这种啊,什么命令加什么的一个方式,就是说命令组加一个冒号的形式,因为我们就是说同意组下面可能有多个命令。对吧,比如像系统。
03:01
提供的这些来看一下。比如他就把所有创建相关的啊,都放到了这个make下,比如创建控制器的,创建命令的。所以说我们在命名的时候也一定要,嗯,按照这个风格去。写我们的命令,比如我们这里可以写send email啊send这个email,对,因为我们还可能有这个send这个短信的,还有可能是发送其他内容的一些命令。啊,这里是我们的一个描述啊。嗯,啊,发送一个邮件给用户。好,接着往下看啊,这个hand的方法实际上就是我们具体啊执行这个命令所执行的一个代码。我们来想一下,如果要发送邮件,是不是要给哪一个用户去发送邮件,所以我们是不还需要一个用户的参数。啊,这个时候可以在命令的后面加上这个大括号。
04:03
啊,定义我们这个命令需要的一个参数,而这个参数呢,可以通过啊,这个argument就是类似这个类里面的argument。方法去获取我们定义的一个参数,它这里是查询的数据库,但现在还没有学数据库,我们先拿拿到这个参数来看一下。嗯,在这里。加上一个参数也是需要啊,提供一个用户的一个啊。ID或者其他这个数据啊,这里。我们可以使用啊,类似啊这个对象里面的。Argument。去获取我们传递的这个参数。来滴滴一下刀都是ID。下面来执行我们的命令。当我们定义了这个命令之后啊,创建这个命令文件之后。我们在使用P的时候,是可以看到我们的这个命令的啊,或者使用p list,你找到这个。
05:06
啊的这块啊可以看到。有一个还有我们的描述,我执行这个命令。啊,再告诉我们丢失了这个参数,我加一个。嗯,有用。啊,就是我们要获取ID为幺幺用户的这个。这个数据,并且给他发送邮件,现在这个参数是可以传过来的,对吧。啊。然后后面执行你的这个发送邮件就可以了。写下注释啊,获取参数。接着往下看一下。嗯,说一下这个B包命令,B包命令呢,就是我们可以嗯不去定义这个命令的文件,而是直接写在这个root文件里面的cons这里面啊,去定义我们的命令。
06:10
比如。我们。复制一下啊。定义一个命令,比如说我们send。发三发送短信啊,如果有参数的话,可以放到这里面。啊,这里我们也改一下。生长啊,图有伤。好。这里直接输出他的,就是在这里定义这个命令的话。可以在这里获取参数,但是同样的这里我们要把这个需要的参数给写上啊。他们这个名字是对应的,这时候我们就可以拿到这个参数来尝试一下啊。
07:00
四的冒号。啊,丢失了这个参数,对吧,我们把这个参数传上。好。啊,但是不建议把我们的卡门的命令,自定义的命令写到这里啊,这样如果你命令比较多的话,会显得非常的啊大这个文件,而且会多不好管理,我们还是建议你。建立成独立的命令的文件。接着往下看。参数啊,这里刚才已经说过了。啊,可选参数呢,我们只要加个问号就可以了,然后可选参数还可以啊,给些默认值。就大家自行尝试啊。除了参数呢,我们还可有选项,选项就是用户输入的另一种形式啊,在命令行中指定选项的时候,可以使用两个短横线杠杠作为前缀选项,我们定义的话是使用杠杠啊,那。选项的作用呢,其实就是那个类似一个开关,当我们接收到这个选项的时候,如果用户传了,他这个只就是数,如果用户没传就是false。
08:02
这时候我们发送邮件,我们再加一个杠杠宽的选项。啊,就是否使用队列的一个选项。嗯,那在这个里面我怎么获取选项呢。啊,选项的话要使用这个对象提供的。Options方法。Option方法。然后是我们选项的名字啊,就。这个时候就这里是不加这个杠杠的啊,这个名字和这里对应。但是我们在使用的时候加上了杠杠,下面我们打印输出一下我们的选项。这里就先注释掉,不然的话下面不会有输出。顺子,你没。下面是优色的ID。
09:02
加上我们的选项。我们加的这个选项,它是出。如果我们不加这个选项。它就是,所以选项可以起到一个类似一个开关的作用。通过这个开关啊出和佛子可以让用户啊去决定自己期望的一个输出。答案选项。还有一个是可以带值,就是在选项的时候,我们后面还给上一个嗯值,就是更细化的去操作这个流程。嗯。获取用户的这个收入啊,这里我们就说了,参数的话,我们使用argument选项的话呢,使用option。啊,获取所有的参数是使用这个arguments,所有选项是这个啊。啊,交互式输入,也就是说我们在执行命令的时候可以啊询问用户,让用户提供资金的一些输入,这时候可以使用他的ask。
10:07
这是我们来看一下。比如。这里先注释掉,方便我们去演示。好,这里我们说出一句话啊,问用户的一个姓名,接着呢,因为我使用R,它会啊处于一个光标可输入的状态,当我们输入这个内容之后呢,就会被这个变量。啊,给接收到你就可以输出,我们输出到这个变量来试一下。再加上用户的这个ID啊。
11:02
嗯,打错了。好,这里就会问我们。一个名字。这时候我们说它就可以被这个变量给接收到。这是用户的一个输入。还有就是啊,可以让。这个有些比较隐私的输入,不显示。就是用户的数不可见,可以使用。请求确认啊,就是我们可以使用confirm来让用户啊,就是说。确定。啊,或者是取消这种执行试一下。啊。这里我们会输出一句话啊,如果它用户输出了Y或者yes,就会,这就会返回true啊,我们就会执行这个代码,否则的话就会返回false。
12:03
这样的话就可以去写我们那个逻辑,把这个补全。哎,比如说您。同意了。您拒绝了?现在再来执行一下命令。他问我们是否继续,我们是不是yes或者Y都可以啊。是不是,那我们输入。嗯嗯,或者no,或者是什么都不输入的话,他都是认为我们拒绝了。就是让用户确认的,就通过这些啊,都是为了更好的去控制我们命令的一个和用户的一个交互。还有就是输出,再说一下,通过他提供的不同的这个方法,我们可以显示不同颜色的一个输出啊,用于不同的一个。
13:05
这个提示。就我们这里。啊音符它是一个颜色,然后。还有这个error,它是一个红色。还有就是。蜡就是普通的一个颜色。看一下啊。对吧。这个啊,这个是我们的音符输出的,这个是L输出的,这个是普通的一个输出的,就通过这些可以去。根据我们的这个提示去输出就可以了,根据执行的结果。看看表格的一个布局。表格的话呢。啊,有时候还是比较好用的啊。这里啊,它是查询的这个。
14:00
这个用户的一个数据啊,用户表的一个数据,但是我们没有用户表,我们就模拟模拟一下这个数据就可以了啊好。主要就是,嗯。这里是定义的这个表头,这里是个二维数组,也是我们表格的一个数据,表格是一行一行的嘛,所以我们这里是一行一行的啊。You Li。又向A艾特。a com。好。那我们多复制几行。把他给他就可以了,最后用type分嘛,他帮我们宣传成一个表格,执行一下看看。是不是这样一个表格就出来了,对,这是表格,有时候你要做一些处理的话,它是可以使用一下的。再看一下进度条,有时候我们在执行一些耗时的任务的时候,可以去加一些进度条,这样的交互会更加的友好。进度条呢,主要使用的是这个。
15:00
啊,这个啊,Create创建一个进度条,然后使用啊进度条的这个。嗯,这个每次。就说让他增长啊,使用这个。方法。啊,最终完成使用这个。来复制下。它也是查询了所有的用户啊。好。他这里呢,也是查询了所有的用户。但是我没有用户呢,我们就先啊模拟一些数据。嗯。因为这里我们。还是复制我们刚才这个数据啊。啊,它然后是把它的数量,也就我们进度条的总数量去传给他。
16:01
啊,然后。循环就行了,但是这个数量有点少,所以可能是不够,我们看,那我们怎么办呢?我们用run几啊去模拟一个,比如模拟一个一到100的一个数据,100的一个数组。拿来循环它。好。嗯。这个这个就是说处理这个。呃,具体任务的一个方法,我们这里面是没有的,我们把这个删掉啊。我们来模拟一个任务处理的一个时长,比如说SLEEP1秒,假如我们的任务处理需要耗时一秒。啊,一秒以后,它就加一个这个。试一下。好,这是我们接条。这是我们的这个总。任务的一个执行的一个数量啊,这是我们的这个百分比。CTRLC结束掉。我们加快一点,只给十个。
17:01
看看他完成后的样子。这样就完成了。
我来说两句