zoukankan      html  css  js  c++  java
  • Laravel入坑指南(8)——控制台程序

    我们知道,php代码不仅可以用web的形式对外提供服务,同时也可以在命令行下执行。

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

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

    php Command.php
    #如果$PATH中的php不是你的目标php,那么可以指定php的绝对路径
    /www/server/php/bin/php Command.php
    #Command.php正常情况下也会指明绝对路径

    方法二:(仅适用于Linux)

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

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

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

    同样的,因为Laravel是以php为基本语言的框架,同样可以支持在控制台运行。在Laravel框架体系统,规定了一套创建适用于本框架的方法。现在就让我们一起创建并运行Laravel的控制台程序:

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

    php artisan make:command TestCmd --command=Test

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

    在创建的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");
    }

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

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

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

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

  • 相关阅读:
    jQuery的实用技巧
    jQuery中的Ajax
    jQuery中的动画
    jQuery中的事件
    jQuery中的DOM操作
    详解jQuery的选择器
    微信小程序开发教程(九)视图层——.wxss详解
    微信小程序开发教程(八)视图层——.wxml详解
    14 组合查询
    13 创建高级联结
  • 原文地址:https://www.cnblogs.com/ddcoder/p/13382557.html
Copyright © 2011-2022 走看看