Laravel(artisan 常用命令)

youngyyx666發表於2020-02-19

Artisan工具簡介

Artisan 是 Laravel 中自帶的命令列工具的名稱。它提供了一些對您的應用開發有幫助的命令。它是由強大的 Symfony Console 元件驅動的。為了檢視所有可用的 Artisan 的命令,您可以使用 list 命令來列出它們:

在指令碼中執行php artisan list可以檢視所有的命令

那麼熟悉linux的知道,不管什麼命令都有一個help命令,當執行的時候,忽然之間,忘了的話,可以執行help命令去檢視一下我們需要的命令,同樣的在laravel框架中也可以去執行help命令去檢視如:
php artisan help migrate

利用artisan工具建立控制器

瞭解tp框架的同學,能知道,如果去建立一個控制器,需要自己去手寫,名稱空間,繼承類等
那麼在laravel中,還可以利用artisan工具去執行,如建立一個MsgController
php artisan make:controller MsgController
執行之後,’app\http\Controllers’會多出一個MsgController,並且也準備好了方法增,刪,改,查,等如果不需要那怎麼辦呢?很簡單,一是直接刪除,二利用命令生成空白的控制器如:
php artisan make:controller --plain

但是,有的同學會遇到這種情況,如,一個專案分前臺和後臺,相應的控制器也需要放置在不同的目錄下,這種怎麼處理呢,如果用artisan工具?比如建立一個Admin\GoodsController

php artisan make:controller Admin\GoodsController
前提是在laravel專案中的App\Http\Controllers下已建立Admin資料夾,執行之後會發現,admin下多出GoodsController的檔案,開啟,發現名稱空間也自動整理好;
這條命令指示,驗證了laravel框架的靈活性,開發者可以隨意的去指定;

利用artisan工具建立model

作為程式設計師,開發專案的同時,我們需要去運算元據庫,那麼肯定就與model有關係,那麼如何使用artisan工具去建立一個model呢?和控制器,大同小異,比如建立一個Msg的model

php artisan make:model Msg
在laravel中,它預設是放在App目錄下,那如果想要定義自己的資料夾呢和控制器也是一樣的我們指定它的目錄即可,不過要注意的是把名稱空間需要改變一下

利用artisan工具檢視路由

在laravel框架中,如果想要在瀏覽器中去響應控制器中的方法,那麼只需要,在App\routes.php中去指定路由即可,但是如果我們使用資源路由,只需指定一條路由即可,並且,它也直接生成好多方法,但我們是看不到的,那麼怎麼辦呢?
php artisan route:list
利用這條命令可以檢視所有的路由

利用artisan工具建立中介軟體
首先在laravel中,中介軟體也是一個非常方便的東西,那麼中介軟體是什麼呢?
簡單的理解就是,中介軟體可以放到我們的控制器的方法前或後去執行,來影響執行的結果.
用過,laravel框架做過專案的都知道,每當post提交的時候,都會報一個Token的錯誤,解決辦法是加個
{!!csrf_field()!!}即可,但是根本原因在哪裡呢?
app\http\middleware\VerifyCsrfToken.php的問題,把這個中介軟體發在全域性上,每當去post的提交的時候就會驗證;

如何去生成一箇中介軟體呢?

php artisan make:middleware EmailMiddleware
執行會在,middleware 資料夾下找到

=================================分割線================================

檢視artisan命令

  1. php artisan
  2. php artisan list

檢視某個幫助命令

  1. php artisan help make:model

檢視laravel版本

  1. php artisan --version

使用 PHP 內建的開發伺服器啟動應用

  1. php artisan serve

生成一個隨機的 key,並自動更新到 app/config/app.php 的 key 鍵值對(剛安裝好需要做這一步)

  1. php artisan key:generate

開啟Auth使用者功能(開啟後需要執行遷移才生效)

  1. php artisan make:auth

開啟維護模式和關閉維護模式(顯示503)

  1. php artisan down
  2. php artisan up

進入tinker工具

  1. php artisan tinker

列出所有的路由

  1. php artisan route:list

生成路由快取以及移除快取路由檔案

  1. php artisan route:cache
  2. php artisan route:clear

建立控制器

  1. php artisan make:controller StudentController

建立Rest風格資源控制器(帶有index、create、store、edit、update、destroy、show方法)

  1. php artisan make:controllerPhotoController--resource

建立模型

  1. php artisan make:model Student

建立新建表的遷移和修改表的遷移

  1. php artisan make:migration create_users_table--create=students//建立students表
  2. php artisan make:migration add_votes_to_users_table--table=students//給students表增加votes欄位

執行遷移

  1. php artisan migrate

建立模型的時候同時生成新建表的遷移

  1. php artisan make:modelStudent-m

回滾上一次的遷移

  1. php artisan migrate:rollback

回滾所有遷移

  1. php artisan migrate:reset

建立填充

  1. php artisan make:seeder StudentTableSeeder

執行單個填充

  1. php artisan db:seed--class=StudentTableSeeder

執行所有填充

  1. php artisan db:seed

建立中介軟體(app/Http/Middleware 下)

  1. php artisan make:middlewareActivity

建立佇列(資料庫)的表遷移(需要執行遷移才生效)

  1. php artisan queue:table

建立佇列類(app/jobs下):

  1. php artisan make:jobSendEmail

建立請求類(app/Http/Requests下)

  1. php artisan make:request CreateArticleRequest

=================================分割線================================

1、控制器 or Model

  1. // 5.2版本建立一個空控制器

  2. php artisan make:controller BlogController

  3. // 建立Rest風格資源控制器

  4. php artisan make:controller PhotoController --resource

  5. // 指定建立位置 在app目錄下建立TestController

  6. php artisan make:controller App\TestController

  7. // 指定路徑建立

  8. php artisan make:Model App\\Models\\User(linux or macOs 加上轉義符)

  9. // 資料遷移

  10. php artisan migrate

2、資料遷移(Migration)

  1. // 建立遷移

  2. php artisan make:migration create_users_table

  3. // 指定路徑

  4. php artisan make:migration --path=app\providers create_users_table

  5. // 一次性建立

  6. // 下述命令會做兩件事情:

  7. // 在 app 目錄下建立模型類 App\Post

  8. // 建立用於建立 posts 表的遷移,該遷移檔案位於 database/migrations 目錄下。

  9. php artisan make:model --migration Post

3、資料填充(Seeder)

  1. // 建立要填充的資料類

  2. php artisan make:seeder UsersTableSeeder

  3. // 資料填充(全部表)

  4. php artisan db:seed

  5. // 指定要填充的表

  6. php artisan db:seed --class=UsersTableSeeder

4、路由

  1. // 檢視所有路由

  2. php artisan route:list

5、tinker命令插入單條資料

  1. E:\opensource\blog>php artisan tinker

  2. Psy Shell v0.7.2 (PHP 5.6.19 鈥?cli) by Justin Hileman

  3. >>> $user = new App\User;

  4. => App\User {#628}

  5. >>> $user->name = 'admin'

  6. => "admin"

  7. >>> $user->email = 'fation@126.com'

  8. => "fation@126.com"

  9. >>> $user->password = bcrypt('123456');

  10. => "$2y$10$kyCuwqSpzGTTZgAPMgCDgung9miGRygyCAIKHJhylYyW9osKKc3lu"

  11. >>> $user->save();

  12. "insert intousers(name,email,password,updated_at,created_at) v

  13. alues (?, ?, ?, ?, ?)"

  14. => true

  15. >>> exit

  16. Exit: Goodbye.

6、Request請求,主要用於表單驗證

php artisan make:request TagCreateRequest

建立的類存放在 app/Http/Requests 目錄下

  1. <?php

  2. namespace App\Http\Requests;

  3. use App\Http\Requests\Request;

  4. class TagCreateRequest extends Request

  5. {

  6. /**

  7. * Determine if the user is authorized to make this request.

  8. *

  9. * [@return](https://my.oschina.net/u/556800) bool

  10. */

  11. public function authorize()

  12. {

  13. return true;

  14. }

  15. /**

  16. * Get the validation rules that apply to the request.

  17. *

  18. * [@return](https://my.oschina.net/u/556800) array

  19. */

  20. public function rules()

  21. {

  22. return [

  23. 'tag' => 'required|unique:tags,tag',

  24. 'title' => 'required',

  25. 'subtitle' => 'required',

  26. 'layout' => 'required',

  27. ];

  28. }

  29. }

使用時只需在對應的Controller方法裡引入

  1. // 注意這裡使用的是TagCreateRequest

  2. public function store(TagCreateRequest $request)

  3. {

  4. $tag = new Tag();

  5. foreach (array_keys($this->fields) as $field) {

  6. $tag->$field = $request->get($field);

  7. }

  8. $tag->save();

  9. return redirect('/admin/tag')

  10. ->withSuccess("The tag '$tag->tag' was created.");

  11. }

7、 建立artisan命令列(laravel5.*版本)

  1. // 以下命令生成檔案 app/Console/Commands/TopicMakeExcerptCommand.php

  2. php artisan make:console TopicMakeExcerptCommand --command=topics:excerpt

  3. //在 app/Console/Kernel.php 檔案裡面, 新增以下

  4. protected $commands = [

  5. \App\Console\Commands\TopicMakeExcerptCommand::class,

  6. ];

  7. //啟用artisan命令列。

//在生成的TopicMakeExcerptCommand.php 檔案, 修改以下區域
  1. <?php

  2. namespace App\Console\Commands;

  3. use Illuminate\Console\Command;

  4. class TopicMakeExcerptCommand extends Command

  5. {

  6. /**

  7. * 1. 這裡是命令列呼叫的名字, 如這裡的:topics:excerpt,

  8. * 命令列呼叫的時候就是php artisan topics:excerpt``

  9. *

  10. * [@var](https://my.oschina.net/u/1030343) string

  11. */

  12. protected $signature = 'topics:excerpt';

  13. /**

  14. * 2. 這裡填寫命令列的描述, 當執行php artisan

  15. * 可以看得見.

  16. *

  17. * @var string

  18. */

  19. protected $description = '這裡修改為命令列的描述';

  20. /**

  21. * Create a new command instance.

  22. *

  23. * @return void

  24. */

  25. public function __construct()

  26. {

  27. parent::__construct();

  28. }

  29. /**

  30. * 3. 這裡是放要執行的程式碼, 如在我這個例子裡面,

  31. * 生成摘要, 並保持.

  32. *

  33. * @return mixed

  34. */

  35. public function handle()

  36. {

  37. $topics = Topic::all();

  38. $transfer_count = 0;

  39. foreach ($topics as $topic) {

  40. if (empty($topic->excerpt))

  41. {

  42. $topic->excerpt = Topic::makeExcerpt($topic->body);

  43. $topic->save();

  44. $transfer_count++;

  45. }

  46. }

  47. $this->info("Transfer old data count: " . $transfer_count);

  48. $this->info("It's Done, have a good day.");

  49. }

  50. }

  51. // 命令列呼叫

  52. php artisan topics:excerpt

========================分割線====================================

artisan 命令列表一

  1. php artisan –help:顯示幫助命令的使用格式,同 php artisan help
  2. php artisan –version:顯示當前使用的 Laravel 版本
  3. php artisan changes:列出當前版本相對於上一版本的主要變化
  4. php artisan down:將站點設為維護狀態
  5. php artisan up:將站點設回可訪問狀態
  6. php artisan optimize:優化應用程式效能,生成自動載入檔案,且產生聚合編譯檔案 bootstrap/compiled.php
  7. php artisan dump-autoload:重新生成框架的自動載入檔案,相當於 optimize 的再操作
  8. php artisan clear-compiled:清除編譯生成的檔案,相當於 optimize 的反操作
  9. php artisan migrate:執行資料遷移
  10. php artisan routes:列出當前應用全部的路由規則
  11. php artisan serve:使用 PHP 內建的開發伺服器啟動應用 【要求 PHP 版本在 5.4 或以上】
  12. php artisan tinker:進入與當前應用環境繫結的 REPL 環境,相當於 Rails 框架的 rails console 命令
  13. php artisan workbench 組織名/包名:這將在應用根目錄產生一個名為 workbench 的資料夾,然後按 組織名/包名 的形式生成一個符合 Composer 標準的包結構,並自動安裝必要的依賴【需要首先完善好 app/config/workbench.php 檔案的內容】
  14. php artisan cache:clear:清除應用程式快取
  15. php artisan command:make 命令名:在 app/commands 目錄下生成一個名為 命令名.php 的自定義命令檔案
  16. php artisan controller:make 控制器名:在 app/controllers 目錄下生成一個名為 控制器名.php 的控制器檔案
  17. php artisan db:seed:對資料庫填充種子資料,以用於測試
  18. php artisan key:generate:生成一個隨機的 key,並自動更新到 app/config/app.ph 的 key 鍵值對
  19. php artisan migrate:install:初始化遷移資料表
  20. php artisan migrate:make 遷移名:這將在 app/database/migrations 目錄下生成一個名為 時間+遷移名.php 的資料遷移檔案,並自動執行一次 php artisan dump-autoload 命令
  21. php artisan migrate:refresh:重置並重新執行所有的資料遷移
  22. php artisan migrate:reset:回滾所有的資料遷移
  23. php artisan migrate:rollback:回滾最近一次資料遷移
  24. php artisan session:table:生成一個用於 session 的資料遷移檔案

artisan 命令列表二

  1. Laravel Framework version 5.3.28

  2. Usage:

  3. command [options] [arguments]

  4. Options:

  5. -h, –help 顯示幫助資訊

  6. -q, –quiet 不要輸出任何資訊

  7. -V, –version 顯示當前應用版本

  8. –ansi 強制 ANSI 輸出

  9. –no-ansi 關閉 ANSI 輸出

  10. -n, –no-interaction 不要詢問任何互動問題

  11. –env[=ENV] 在當前環境下執行命令

  12. -v|vv|vvv, –verbose 升級詳細資訊: 1 正常輸出, 2 更多詳細資訊 3 除錯使用

  13. 可用的命令:

  14. clear-compiled 移除編譯類檔案

  15. down 將應用程式置於維護模式

  16. env 顯示當前框架的環境 比如 local

  17. help 顯示一個命令的幫助資訊 比如 php artisan help make:controller

  18. inspire 顯示一個灌輸的引用(inspiring quote)

  19. list 列出所有命令

  20. migrate 執行資料庫遷移

  21. optimize 優化框架以獲得更好的效能

  22. serve 在PHP開發伺服器上提供應用程式

  23. tinker 與您的應用程式互動

  24. up 使應用程式退出維護模式

  25. app

  26. app:name 設定應用名稱空間

  27. auth

  28. auth:clear-resets 重新整理過期密碼重置令牌

  29. cache

  30. cache:clear 重新整理應用程式快取

  31. cache:table 為快取資料庫表建立遷移

  32. config

  33. config:cache 建立快取檔案以加快配置載入

  34. config:clear 刪除配置快取檔案

  35. db

  36. db:seed Seed the database with records

  37. event

  38. event:generate 基於註冊生成缺少的事件和偵聽器

  39. key

  40. key:generate 設定應用key

  41. make

  42. make:auth 搭建基本的登入和註冊的檢視和路由

  43. make:command 建立一個新的 Artisan 命令

  44. make:controller 建立一個新的 controller 類

  45. make:event 建立一個新的 event 類

  46. make:job 建立一個新的 job 類

  47. make:listener 建立一個新的 event listener 類

  48. make:mail 建立一個新的 email 類

  49. make:middleware 建立一個新的 middleware 類

  50. make:migration 建立一個新的 migration 檔案

  51. make:model 建立一個新的 Eloquent model 類

  52. make:notification 建立一個新的 notification 類

  53. make:policy 建立一個新的 policy 類

  54. make:provider 建立一個新的 service provider 類

  55. make:request 建立一個新的 form request 類

  56. make:seeder 建立一個新的 seeder 類

  57. make:test 建立一個新的 test 類

  58. migrate

  59. migrate:install 建立遷移儲存庫

  60. migrate:refresh 重置並重新執行所有遷移

  61. migrate:reset 回滾所有資料庫遷移

  62. migrate:rollback 回滾上次資料庫遷移

  63. migrate:status 顯示每個遷移的狀態

  64. notifications

  65. notifications:table 為通知表建立遷移

  66. queue

  67. queue:failed 列出所有失敗的佇列作業s

  68. queue:failed-table 為失敗的佇列作業資料庫表建立遷移

  69. queue:flush 清除所有失敗的佇列作業

  70. queue:forget 刪除失敗的佇列作業

  71. queue:listen 監聽一個給定的佇列

  72. queue:restart 在其當前作業之後重新啟動佇列worker守護程式

  73. queue:retry 重試一個失敗的佇列任務

  74. queue:table 為佇列作業資料庫表建立遷移

  75. queue:work 開始作為守護程式在佇列上處理作業

  76. route

  77. route:cache 建立路由快取檔案用於更快的路由註冊

  78. route:clear 刪除路由快取檔案

  79. route:list 列出所有註冊的路由

  80. schedule

  81. schedule:run 執行已排程的命令

  82. session

  83. session:table 為會話資料庫表建立遷移

  84. storage

  85. storage:link 建立符號連結 從 “public/storage” 到 “storage/app/public”

  86. vendor

  87. vendor:publish 從供應商包釋出任何可釋出的資產

  88. view

  89. view:clear 清除所有編譯的檢視檔案

artisan 命令使用不知道的,可以使用如下命令檢視幫助資訊

[plain] view plain copy

  1. php artisan help 命令

比如檢視 make:controller 如何使用

[plain] view plain copy

  1. wujiangwei:laravel wu$ php artisan help make:controller

  2. Usage:

  3. make:controller [options] [–]

  4. Arguments:

  5. name The name of the class

  6. Options:

  7. -m, –model[=MODEL] Generate a resource controller for the given model.

  8. -r, –resource Generate a resource controller class.

  9. -h, –help Display this help message

  10. -q, –quiet Do not output any message

  11. -V, –version Display this application version

  12. –ansi Force ANSI output

  13. –no-ansi Disable ANSI output

  14. -n, –no-interaction Do not ask any interactive question

  15. –env[=ENV] The environment the command should run under

  16. -v|vv|vvv, –verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

  17. Help:

  18. Create a new controller class

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章