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");
}

上面兩種示例的參數類型能夠混合使用。

到這裏,命令行這一話題就接近尾聲了。天色也不早了,你們下期見: )

 

 

---------------------------  我是可愛的分割線  ----------------------------

最後博主借地宣傳一下,漳州編程小組招新了,這是一個面向漳州青少年信息學/軟件設計的學習小組,有意向的同窗點擊連接,聯繫我吧。

相關文章
相關標籤/搜索