Artisan是Laravel自帶的命令行接口名稱,它提供了很多有用的命令想要查看所有可用的Artisan命令,可使用list命令查看:
1
|
php artisan list
|
每個命令都可以用help指令顯示命令描述及命令參數和選項。想要查看幫助界面,只需要在命令前加上help就可以了,例如:
1
|
php artisan help migrate
|
除了Artisan提供的命令之外,還可以構建自己的命令。可以將自定義命令存放在app/Console/Commands目錄;當然,也可以自己選擇存放位置,只要改命令可以基於composer.json被自動加載。
要創建一個新命令,可以使用Artisan命令make:console,比如我要創一個發送郵件的artisan命令,可以這樣:
1
|
php artisan
make
:console SendEmails
|
上述命令將會生成一個類app/Console/Commands/SendEmails.php
,當創建命令時,--command
選項可用於分配終端命令名(在終端調用命令時用):
1
|
php artisan
make
:console SendEmails --
command
=emails:send
|
命令生成以后,需要填寫該類的signature
和description
屬性,這兩個屬性在調用list
顯示命令的時候會被用到。handle
方法在命令執行時被調用,可以將所有命令邏輯都放在這個方法里面,我們可以在命令控制器的構造函數中注入任何依賴.這個SendEmails.php里面內容參考如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
<?php
namespace
App\Console\Commands;
use
Illuminate\Console\Command;
class
SendEmails
extends
Command {
/**
* The console command name.
*
* @var string
*/
protected
$name
=
'emails:send'
;
/**
* The console command description.
*
* @var string
*/
protected
$description
=
'這是發郵件的命令.'
;
/**
* Create a new command instance.
*
* @return void
*/
public
function
__construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public
function
handle()
{
//TODO:發送郵件邏輯
}
$name是這個命令的名稱,即artisan調用時的命令,如本例命令設為了emails:send,那么實際調用時要這么用:
執行上面這條命令就是執行handle()方法,當然,這里還漏了一個非常重要的關鍵步驟,那就是需要把命令注入到
|