laravel 命令行

protected $signature = 'make:migration {name : The name of the migration}
    {--create= : The table to be created}
    {--table= : The table to migrate}
    {--path= : The location where the migration file should be created}
    {--realpath : Indicate any provided migration file paths are pre-resolved absolute paths}';

參數(shù):必填翎猛、可選和默認(rèn)參數(shù)
要定義一個必填參數(shù)胖翰,需要用花括號將其包裹起來:

make:migration {name}

要定義一個可選參數(shù),可以在參數(shù)名稱后面加一個問號:

make:migration {name?}

要為可選參數(shù)定義默認(rèn)值切厘,可以這么做:

make:migration {name=create_users_table}

選項:必須設(shè)值萨咳、默認(rèn)值以及縮寫
選項和參數(shù)很像,但是選項有前綴 --疫稿,而且可以在沒有值的情況下使用培他,要添加一個最基本的選項,可以通過花括號將其包裹:

make:migration {name} {--table}

如果這個選項必須要設(shè)置選項值遗座,可以加上一個 =:

make:migration {name} {--table=}

然后如果你想要為其設(shè)置默認(rèn)選項值舀凛,可以這么做:

make:migration {name} {--table=users}

此外,選項還支持縮寫途蒋,比如我們可以通過 T 來代表 table:

make:migration {name} {--T|table}

數(shù)組參數(shù)和數(shù)組選項
不管是參數(shù)還是選項猛遍,如果你想要接收數(shù)組作為參數(shù),都要使用 * 通配符:

make:migration {name*} {--table=*}

數(shù)組參數(shù)和選項的調(diào)用方式如下(這里僅作演示号坡,make:migration 本身不支持這么干):

make:migration create_users_table create_posts_table --table=users --table=posts

注:數(shù)組參數(shù)必須是參數(shù)列表中的最后一個參數(shù)懊烤。


獲取參數(shù)和選項
接下來,我們需要在命令類中獲取參數(shù)和選項信息宽堆,在此之前腌紧,根據(jù)上述知識點,我們改寫下自定義的 welcome:message 命令的 $signature 屬性:

protected $signature = 'welcome:message {name : 用戶名} {--city : 來自的城市}';

獲取參數(shù)和選項
接下來畜隶,我們需要在命令類中獲取參數(shù)和選項信息壁肋,在此之前逮光,根據(jù)上述知識點,我們改寫下自定義的 welcome:message 命令的 $signature 屬性:

protected $signature = 'welcome:message {name : 用戶名} {--city : 來自的城市}';

在命令類中我們可以通過 this->argument() 方法獲取參數(shù)值墩划,不帶參數(shù)返回所有參數(shù)值涕刚,如果傳入指定參數(shù)名,則返回對應(yīng)的參數(shù)值乙帮。類似的杜漠,在命令類中可以通過this->option() 方法獲取選項值,不帶參數(shù)返回所有選項值察净,傳入指定選項名返回對應(yīng)的選項值驾茴。為此,我們改寫 welcome:message 命令的 handle() 方法如下:

public function handle()
{
    $this->info('歡迎來自' . $this->option('city') . '的' . $this->argument('name') .'xxx!');
}

用戶交互
除了在命令行運行命令時手動設(shè)置參數(shù)值和選項值獲取輸入信息之外氢卡,Artisan 還支持通過其它方式獲取用戶輸入锈至,比如用戶在執(zhí)行命令期間通過鍵盤輸入?yún)?shù)信息。這在我們的命令行應(yīng)用最終是交付給客戶使用的情況下非常方便译秦,因為不同客戶的輸入信息是不一樣的峡捡,我們不能寫死,如果讓客戶自己輸入又長又多的參數(shù)和選項又很不友好筑悴。

Laravel Artisan 提供了很多方法支持用戶輸入不同類型的數(shù)據(jù)们拙。

如果輸入的是普通文本的話,通過 ask() 方法即可:

$name = $this->ask('你叫什么的名字');

如果輸入的是敏感信息阁吝,比如密碼之類的砚婆,可以通過 secret() 方法隱藏用戶輸入:

$password = $this->secret('輸入密碼才能執(zhí)行此命令');

如果需要用戶確認(rèn)信息,可以通過 confirm() 方法突勇,該方法返回布爾值:

if ($this->confirm('確定要執(zhí)行此命令嗎?')) {
    // 繼續(xù)
}

有時候装盯,我們?yōu)榱朔奖阌脩艨焖佥斎耄瑫峁┳詣油瓿商崾竟δ芗撞觯@可以通過 anticipate() 方法實現(xiàn):

$city = $this->anticipate('你來自哪個城市', [ 
    "北京", 
    "杭州", 
    "深圳" 
]);

最后埂奈,還有個很常見的命令行交互方式是為用戶提供選項讓用戶選擇,這可以通過 choice() 方法實現(xiàn):

$city = $this->choice('你來自哪個城市', [
    '北京', '杭州', '深圳'
], 0);

進(jìn)度條
如果你之前運行過 npm install摔刁,就會看到安裝過程中有進(jìn)度條顯示安裝進(jìn)度挥转,在 Artisan 命令執(zhí)行過程中海蔽,也可以顯示類似的進(jìn)度條共屈,實現(xiàn)代碼如下:

$totalUnits = 10;
$this->output->progressStart($totalUnits);

$i = 0;
while ($i++ < $totalUnits) {
    sleep(3);
    $this->output->progressAdvance();
}

$this->output->progressFinish();

轉(zhuǎn)自https://laravelacademy.org/post/9688.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市党窜,隨后出現(xiàn)的幾起案子拗引,更是在濱河造成了極大的恐慌,老刑警劉巖幌衣,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矾削,死亡現(xiàn)場離奇詭異壤玫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哼凯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門欲间,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人断部,你說我怎么就攤上這事猎贴。” “怎么了蝴光?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵她渴,是天一觀的道長。 經(jīng)常有香客問我蔑祟,道長趁耗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任疆虚,我火速辦了婚禮苛败,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘径簿。我一直安慰自己著拭,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布牍帚。 她就那樣靜靜地躺著儡遮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪暗赶。 梳的紋絲不亂的頭發(fā)上鄙币,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機(jī)與錄音蹂随,去河邊找鬼十嘿。 笑死,一個胖子當(dāng)著我的面吹牛岳锁,可吹牛的內(nèi)容都是我干的绩衷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼激率,長吁一口氣:“原來是場噩夢啊……” “哼咳燕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乒躺,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤招盲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嘉冒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體曹货,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡咆繁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了顶籽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玩般。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖礼饱,靈堂內(nèi)的尸體忽然破棺而出壤短,到底是詐尸還是另有隱情,我是刑警寧澤慨仿,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布久脯,位于F島的核電站,受9級特大地震影響镰吆,放射性物質(zhì)發(fā)生泄漏帘撰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一万皿、第九天 我趴在偏房一處隱蔽的房頂上張望摧找。 院中可真熱鬧,春花似錦牢硅、人聲如沸蹬耘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽综苔。三九已至,卻和暖如春位岔,著一層夾襖步出監(jiān)牢的瞬間如筛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工抒抬, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留杨刨,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓擦剑,卻偏偏與公主長得像妖胀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子惠勒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,383評論 0 5
  • 一赚抡、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 5,746評論 0 10
  • Laravel 學(xué)習(xí)交流 QQ 群:375462817 本文檔前言Laravel 文檔寫的很好,只是新手看起來會有...
    Leonzai閱讀 7,912評論 2 12
  • Artisan 控制臺 簡介 Artisan 是 laravel 自帶的命令行工具接口的名稱捉撮。它為應(yīng)用的開發(fā)提供了...
    Dearmadman閱讀 15,292評論 0 7
  • 以前看到文章視頻音頻都提到儀式感怕品,想想我的生活中儀式感似乎不多妇垢,有一點遺憾巾遭,又有點自責(zé)肉康,還有點心痛。似乎有了儀式感...
    燕子聊家常閱讀 209評論 0 2