Laravel - Artisan命令學習

本文以laravel5.4為例,建議剛開始學習Laravel框架的朋友先不使用Artisan進行一次項目開發。

簡介

ArtisanLaravel 內置的命令行接口。它提供了一些有用的命令協助您開發,它是由強大的 Symfony Console 組件所驅動。利用它,我們可以快速的新建 Controller、Model等類。

  • 查看所有artisan命令

php artisan list

  • 查看當前laravel的具體版本

php artisan --version

  • 應用進入維護模式

php artisan down

  • 應用推出維護模式

php artisan up

下面是開發中更常用更重要的部分:

  • 創建RESTful資源的控制器和方法

php artisan make:controller UserController

  • 生成表文件

php artisan make:migration create_article_table

  • 執行遷移,創建數據庫表結構

php artisan migrate

  • 執行單文件數據填充

php artisan db:seed --class=AuthorTableSeeder

  • 項目開發中超實用的命令(回滾所有遷移并重新遷移生成種子):

php artisan migrate:refresh --seed

  • 創建 Eloquent 模型類:

php artisan make:model User

  • 創建一個新的服務提供者類

php artisan make:provider name

  • 創建一個新的表單請求類

php artisan make:request name

更多用法

  • 建議創建migration遷移文件時追加--create=articles參數,這樣會使新的遷移文件添加默認格式。

  • 數據遷移表生成后,在database\migrations目錄存在著2016_09_10_020228_create_article_table.php。該文件只有遷移前編寫的up方法和刪除或者覆蓋數據表使用回滾時的down方法,我們只需修改up方法:

  • LaravelModel 對應的表名是其英文單詞的復數形式(內部使用了英文詞語的單復數映射),例如 UserModel 在數據庫中的體現就是users表。接下來讓我們把 PHP 代碼變成真實的 MySQL 中的數據表,運行命令:php artisan migrate。

  • 執行成功后,articles 表已經出現在數據庫里了。articles里字段名可以改為你想要的名字,建議統一命名。

  • 完成后數據庫里還會多了個 migrations 表,用來記錄數據庫遷移信息,并且 database/migrations/ 目錄下記錄著采用 RoR 思想誕生的遷移文件,這些文件不允許刪除,否則不利于交付和迭代。

Seeder

  • database/seeds/下則對應相應的數據庫改動信息,包含數據。
  • Seeder 解決的是我們在開發 web 應用的時候,需要手動向數據庫中填入假數據的繁瑣低效問題。運行以下命令創建 Seeder 文件:

php artisan make:seeder
ArticleSeeder

我們會發現database/seeds/里多了一個文件 ArticleSeeder.php,修改此文件中的 run 函數為:

public function run() {
    DB::table('articles')->delete();
    for ($i=0; $i < 10; $i++) {
        \App\Article::create([ 'title' => 'Title '.$i, 'body' => 'Body '.$i, 'user_id' => 1, ]);
    }
}

上面代碼中的 \App\Article 為命名空間絕對引用。接下來我們把ArticleSeeder注冊到系統內。修改database/seeds/DatabaseSeeder.php
中的 run 函數為:

public function run() {
    $this->call(ArticleSeeder::class);
}

由于database目錄沒有像app 目錄那樣被composer注冊為psr-4自動加載,采用的是psr-0 classmap方式,所以我們還需要運行以下命令把ArticleSeeder.php加入自動加載系統,避免找不到類的錯誤:

composer dump-autoload

然后執行 seed:

php artisan db:seedSeeded: ArticleSeeder

這時候刷新一下數據庫中的 articles 表,會發現已經被插入了 10 行假數據。

參考:

1、Laravel 5.1 LTS 速查表
https://cs.phphub.org/#artisan

2、Laravel 5.0 中文文檔:Artisan 命令行接口
http://laravel-china.org/docs/5.0/artisan

php artisan key:generate重新生成秘鑰

php artisan make:controller UserController

3、2016 版 Laravel 系列入門教程(一)
https://github.com/johnlui/Learn-Laravel-5/issues/4

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容