laravel中artisan工具(命令)的使用詳解

  • artisan工具,首先,這個是一個php文件,它放在咱們laravel框架的根目錄

Artisan工具簡介

Artisan 是 Laravel 中自帶的命令行工具的名稱。它提供了一些對您的應用開發有幫助的命令。它是由強大的 Symfony Console 組件驅動的。爲了查看全部可用的 Artisan 的命令,您可使用 list 命令來列出它們:php

在腳本中執行php artisan list能夠查看全部的命令linux

那麼熟悉linux的知道,無論什麼命令都有一個help命令,當運行的時候,突然之間,忘了的話,能夠執行help命令去查看一下咱們須要的命令,一樣的在laravel框架中也能夠去執行help命令去查看如: 
php artisan help migratelaravel

利用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框架的靈活性,開發者能夠隨意的去指定;bootstrap

利用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的提交的時候就會驗證;session

如何去生成一箇中間件呢?

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

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

 

 

一、控制器 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

二、數據遷移(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

三、數據填充(Seeder)

 
  1. // 建立要填充的數據類

  2. php artisan make:seeder UsersTableSeeder

  3. // 數據填充(所有表)

  4. php artisan db:seed

  5. // 指定要填充的表

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

四、路由

 
  1. // 查看全部路由

  2. php artisan route:list

五、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 into `users` (`name`, `email`, `password`, `updated_at`, `created_at`) v

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

  14. => true

  15. >>> exit

  16. Exit: Goodbye.

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

php artisan make:request TagCreateRequest

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

 
 
  1. <?php

  2.  
  3. namespace App\Http\Requests;

  4.  
  5. use App\Http\Requests\Request;

  6.  
  7. class TagCreateRequest extends Request

  8. {

  9.  
  10. /**

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

  12. *

  13. * @return bool

  14. */

  15. public function authorize()

  16. {

  17. return true;

  18. }

  19.  
  20. /**

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

  22. *

  23. * @return array

  24. */

  25. public function rules()

  26. {

  27. return [

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

  29. 'title' => 'required',

  30. 'subtitle' => 'required',

  31. 'layout' => 'required',

  32. ];

  33. }

  34. }


 

使用時只需在對應的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. }


 

七、 建立artisan命令行(laravel5.*版本)

 
  1. // 如下命令生成文件 app/Console/Commands/TopicMakeExcerptCommand.php

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

 
  1. //在 app/Console/Kernel.php 文件裏面, 添加如下

  2. protected $commands = [

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

  4. ];

  5. //激活artisan命令行。

//在生成的TopicMakeExcerptCommand.php 文件, 修改如下區域
 
  1. <?php

  2.  
  3. namespace App\Console\Commands;

  4.  
  5. use Illuminate\Console\Command;

  6.  
  7. class TopicMakeExcerptCommand extends Command

  8. {

  9. /**

  10. * 1. 這裏是命令行調用的名字, 如這裏的: `topics:excerpt`,

  11. * 命令行調用的時候就是 `php artisan topics:excerpt`

  12. *

  13. * @var string

  14. */

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

  16.  
  17. /**

  18. * 2. 這裏填寫命令行的描述, 當執行 `php artisan` 時

  19. * 能夠看得見.

  20. *

  21. * @var string

  22. */

  23. protected $description = '這裏修改成命令行的描述';

  24.  
  25. /**

  26. * Create a new command instance.

  27. *

  28. * @return void

  29. */

  30. public function __construct()

  31. {

  32. parent::__construct();

  33. }

  34.  
  35. /**

  36. * 3. 這裏是放要執行的代碼, 如在我這個例子裏面,

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

  38. *

  39. * @return mixed

  40. */

  41. public function handle()

  42. {

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

  44. $transfer_count = 0;

  45.  
  46. foreach ($topics as $topic) {

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

  48. {

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

  50. $topic->save();

  51. $transfer_count++;

  52. }

  53. }

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

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

  56. }

  57. }


 

 
  1. // 命令行調用

  2. 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.   
  3. Usage:  
  4.   command [options] [arguments]  
  5.   
  6. Options:  
  7.   -h, --help            顯示幫助信息  
  8.   -q, --quiet           不要輸出任何信息  
  9.   -V, --version         顯示當前應用版本  
  10.       --ansi            強制 ANSI 輸出  
  11.       --no-ansi         關閉 ANSI 輸出  
  12.   -n, --no-interaction  不要詢問任何交互問題  
  13.       --env[=ENV]       在當前環境下運行命令  
  14.   -v|vv|vvv, --verbose  升級詳細信息: 1 正常輸出, 2 更多詳細信息 3 調試使用  
  15.   
  16. 可用的命令:  
  17.   clear-compiled       移除編譯類文件  
  18.   down                 將應用程序置於維護模式  
  19.   env                  顯示當前框架的環境 好比 local  
  20.   help                 顯示一個命令的幫助信息 好比 php artisan help make:controller  
  21.   inspire              顯示一個灌輸的引用(inspiring quote)  
  22.   list                 列出全部命令  
  23.   migrate              運行數據庫遷移  
  24.   optimize             優化框架以得到更好的性能  
  25.   serve                在PHP開發服務器上提供應用程序  
  26.   tinker               與您的應用程序交互  
  27.   up                   使應用程序退出維護模式  
  28.   
  29.  app  
  30.   app:name             設置應用命名空間  
  31.  auth  
  32.   auth:clear-resets    刷新過時密碼重置令牌  
  33.  cache  
  34.   cache:clear          刷新應用程序緩存  
  35.   cache:table          爲緩存數據庫表建立遷移  
  36.  config  
  37.   config:cache         建立緩存文件以加快配置加載  
  38.   config:clear         刪除配置緩存文件  
  39.  db  
  40.   db:seed              Seed the database with records  
  41.  event  
  42.   event:generate       基於註冊生成缺乏的事件和偵聽器  
  43.  key  
  44.   key:generate         設置應用key  
  45.  make  
  46.   make:auth            搭建基本的登陸和註冊的視圖和路由  
  47.   make:command         建立一個新的 Artisan 命令  
  48.   make:controller      建立一個新的 controller 類  
  49.   make:event           建立一個新的 event 類  
  50.   make:job             建立一個新的 job 類  
  51.   make:listener        建立一個新的 event listener 類  
  52.   make:mail            建立一個新的 email 類  
  53.   make:middleware      建立一個新的 middleware 類  
  54.   make:migration       建立一個新的 migration 文件  
  55.   make:model           建立一個新的 Eloquent model 類  
  56.   make:notification    建立一個新的 notification 類  
  57.   make:policy          建立一個新的 policy 類  
  58.   make:provider        建立一個新的 service provider 類  
  59.   make:request         建立一個新的 form request 類  
  60.   make:seeder          建立一個新的 seeder 類  
  61.   make:test            建立一個新的 test 類  
  62.  migrate  
  63.   migrate:install      建立遷移存儲庫  
  64.   migrate:refresh      重置並從新運行全部遷移  
  65.   migrate:reset        回滾全部數據庫遷移  
  66.   migrate:rollback     回滾上次數據庫遷移  
  67.   migrate:status       顯示每一個遷移的狀態  
  68.  notifications  
  69.   notifications:table  爲通知表建立遷移  
  70.  queue  
  71.   queue:failed         列出全部失敗的隊列做業s  
  72.   queue:failed-table   爲失敗的隊列做業數據庫表建立遷移  
  73.   queue:flush          清除全部失敗的隊列做業  
  74.   queue:forget         刪除失敗的隊列做業  
  75.   queue:listen         監聽一個給定的隊列  
  76.   queue:restart        在其當前做業以後從新啓動隊列worker守護程序  
  77.   queue:retry          重試一個失敗的隊列任務  
  78.   queue:table          爲隊列做業數據庫表建立遷移  
  79.   queue:work           開始做爲守護程序在隊列上處理做業  
  80.  route  
  81.   route:cache          建立路由緩存文件用於更快的路由註冊  
  82.   route:clear          刪除路由緩存文件  
  83.   route:list           列出全部註冊的路由  
  84.  schedule  
  85.   schedule:run         運行已調度的命令  
  86.  session  
  87.   session:table        爲會話數據庫表建立遷移  
  88.  storage  
  89.   storage:link         建立符號連接 從 "public/storage" 到 "storage/app/public"  
  90.  vendor  
  91.   vendor:publish       從供應商包發佈任何可發佈的資產  
  92.  view  
  93.   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] [--] <name>  
  4.   
  5. Arguments:  
  6.   name                  The name of the class  
  7.   
  8. Options:  
  9.   -m, --model[=MODEL]   Generate a resource controller for the given model.  
  10.   -r, --resource        Generate a resource controller class.  
  11.   -h, --help            Display this help message  
  12.   -q, --quiet           Do not output any message  
  13.   -V, --version         Display this application version  
  14.       --ansi            Force ANSI output  
  15.       --no-ansi         Disable ANSI output  
  16.   -n, --no-interaction  Do not ask any interactive question  
  17.       --env[=ENV]       The environment the command should run under  
  18.   -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug  
  19.   
  20. Help:  
  21.   Create a new controller class  
相關文章
相關標籤/搜索