常用 artisan 命令

kitty 發表於 2020-09-16

常用 artisan 命令

  1. 檢視框架版本

    php artisan --version
  2. 生成key

    php artisan key:generate
  3. 生成中介軟體
    例如,生成Auth中介軟體,預設位於app/Http/Middleware

    php artisan make:middleware Auth
  4. 生成監聽器
    php artisan event:generate
    預設 Listeners 資料夾是約定俗成的監聽器命名

  5. 生成控制器

    php artisan make:controller CategoriesController

    預設位於app/Http/controllers

  6. 生成模型
    生成User模型類,預設位於app/User.php

    php artisan make:model User 

    生成指定目錄 Models 的模型類User,位於app/Models/User.php

    php artisan make:model Models/User

    生成指定目錄的模型類User,位於app/Models/User.php,且建立資料遷移檔案,位於database/migrations/

    php artisan make:model Models/User -m 

    -m 表示同時建立模型資料遷移檔案

  7. Tinker 可以作為簡單的程式碼測試

    php artisan tinker
  1. 資料遷移、回滾、初始化資料

    建立資料庫遷移檔案,遵照如 add_column_to_table 這樣的命名規範

    php artisan make:migration add_avatar_and_introduction_to_users_table --table=users

    該命令會生成資料遷移檔案,位於database/migrations/目錄下,其檔名為 : 2020_09_11_194302_add_avatar_and_introduction_to_users_table.php

    • --table 表示修改指定表
    • --create 表示建立一個新表

    執行遷移的命令如下:

    php artisan migrate

    資料回滾

    • php artisan migrate:rollback 回滾上一次的遷移
    • php artisan migrate:reset 回滾所有遷移
    • php artisan migrate:refresh 回滾所有遷移並且再執行一次

    初始化資料,命名規範建議 seed_(資料庫表名稱)_data 的格式, 可用於資料初始化

    php artisan make:migration seed_categories_data 

    生成的遷移檔案位於 database/migrations/ 中,檔名 {timestamp}_seed_categories_data.php

  2. 資料工廠/資料填充
    四部曲

    1. 資料模型 Topic.php
    2. 話題的資料工廠 database/factories/TopicFactory.php
    3. 話題的資料填充 database/seeds/TopicsTableSeeder.php
    4. 註冊資料填充 database/seeds/DatabaseSeeder.php
    php artisan db:seed  #執行資料填充

    該命令會執行database/seeds/DatabaseSeeder.php 檔案中的 run 方法.

    php artisan migrate:refresh --seed

    migrate:refresh 命令會回滾資料庫的所有遷移,並執行 migrate 命令,--seed 選項會同時執行 db:seed 命令。

  3. 表單請求驗證

    php artisan make:request UserRequest

    執行成功後會生成以下檔案:

    app/Http/Requests/UserRequest.php

    繼承 Illuminate\Foundation\Http\FormRequest

    • authorize() 該方法是表單驗證自帶的一個許可權驗證功能
    • rules() 該方法是定義表單驗證規則
    • messages() 該方法重寫驗證規則訊息
  4. 建立授權策略類

    php artisan make:policy UserPolicy  #建立的檔案位於 `app/Policies` 目錄下
  5. Redis 佇列

    queue:failed-table 命令來建立 failed_jobs 表的遷移檔案, 會新建 database/migrations/{timestamp}_create_failed_jobs_table.php 檔案,當任務超出這個重試次數後,它就會被插入到 failed_jobs 資料表裡面

    php artisan queue:failed-table

    生成任務處理類,該命令會在 app/Jobs 目錄下生成一個新的類:app/Jobs/TranslateSlug.php

    php artisan make:job TranslateSlug

    啟動佇列系統,佇列在啟動完成後會進入監聽狀態

    php artisan queue:listen
  6. 生成資料通知頻道的資料遷移檔案

    php artisan notifications:table

    生成通知類,預設位於 app/Notifications/TopicReplied.php

    php artisan make:notification TopicReplied
  7. 生成cli命令類

    php artisan make:command CalculateActiveUser --command=larabbs:calculate-active-user

    --command 是指定 Artisan 呼叫的命令,一般情況下,我們推薦為命令加上名稱空間,如本專案的 larabbs:

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