Laravel入坑指南(8)——控制台程序

咱们知道,php代码不只能够用web的形式对外提供服务,同时也能够在命令行下执行。php

对于原生的php来讲,假设咱们有一个php文件,名为Command.php,若是想要在控制台下执行这个文件,那么咱们有两种办法:web

方法一:(适用于Windows和Linux)编程

php Command.php
#若是$PATH中的php不是你的目标php,那么能够指定php的绝对路径
/www/server/php/bin/php Command.php
#Command.php正常状况下也会指明绝对路径

方法二:(仅适用于Linux)app

在Command.php的第一行指明解释器路径框架

#!/www/server/php/bin/php
<?php
//这里写php代码
echo "hello php";

而后将Command.php赋上x(可执行)权限,在控制台下输入./Command.php便可运行函数

 

一样的,由于Laravel是以php为基本语言的框架,一样能够支持在控制台运行。在Laravel框架体系统,规定了一套建立适用于本框架的方法。如今就让咱们一块儿建立并运行Laravel的控制台程序:学习

步骤一:利用artisian建立控制台程序类this

php artisan make:command TestCmd --command=Test

这一句命令运行以后,文件/app/Console/Commands/TestCmd.php就会被建立。命令中的TestCmd是建立的文件名(也是类名),Test是控制台执行命令时,用到的名字。spa

在建立的TestCmd类中,业务代码就写在handle()函数中。命令行

步骤二:控制台执行

php artisan Test    #这里的Test就是建时--command参数指定的名字

步骤三:控制台参数的传递

在TestCmd.php建立的时候,咱们在--command指定了一个调用参数,名字叫Test。这个参数,是执行是用到的名字,也是TestCmd类中的$signature成员的值。

 

 

 接下来,咱们要讨论的参数传递有两种方式,都和这个$signature成员有关。在Laravel中经过控制台向业务代码传递参数,都须要在$signature进行配置,这里咱们用具体的例子来讲明:

示例一:

 

 

 调用时,咱们使用命令:

php artisan Test Jack

在handle()函数中咱们使用argument()成员函数,即可以获得Jack这个值。由于在$signature中用的配置是{user?},因此这个参数是可选的;若是没有那个?号则参数就是必须的:

public function handle()
{
    $this->info($this->argument("user"));
}

示例二:

 

调用时,咱们使用命令:

php artisan Test --id=Jack

在handle()函数中咱们使用option()成员函数即可以获得对应的参数值,这里的id选项是可选的,当控制台没有传递时,取到的则是NULL:

public function handle()
{
    echo $this->option("id");
}

上面两种示例的参数类型能够混合使用。

到这里,命令行这一话题就接近尾声了。天色也不早了,你们下期见: )

 

 

---------------------------  我是可爱的分割线  ----------------------------

最后博主借地宣传一下,漳州编程小组招新了,这是一个面向漳州青少年信息学/软件设计的学习小组,有意向的同窗点击连接,联系我吧。

相关文章
相关标签/搜索