Artisan工具簡介
Artisan 是 Laravel 中自帶的命令列工具的名稱。它提供了一些對您的應用開發有幫助的命令。它是由強大的 Symfony Console 元件驅動的。為了檢視所有可用的 Artisan 的命令,您可以使用 list 命令來列出它們:
在指令碼中執行php artisan list
可以檢視所有的命令
那麼熟悉linux的知道,不管什麼命令都有一個help命令,當執行的時候,忽然之間,忘了的話,可以執行help命令去檢視一下我們需要的命令,同樣的在laravel框架中也可以去執行help命令去檢視如:php artisan help migrate
利用artisan工具建立控制器
瞭解tp框架的同學,能知道,如果去建立一個控制器,需要自己去手寫,名稱空間,繼承類等
那麼在laravel中,還可以利用artisan工具去執行,如建立一個MsgControllerphp 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命令
php artisan
php artisan list
檢視某個幫助命令
php artisan help make:model
檢視laravel版本
php artisan --version
使用 PHP 內建的開發伺服器啟動應用
php artisan serve
生成一個隨機的 key,並自動更新到 app/config/app.php 的 key 鍵值對(剛安裝好需要做這一步)
php artisan key:generate
開啟Auth使用者功能(開啟後需要執行遷移才生效)
php artisan make:auth
開啟維護模式和關閉維護模式(顯示503)
php artisan down
php artisan up
進入tinker工具
php artisan tinker
列出所有的路由
php artisan route:list
生成路由快取以及移除快取路由檔案
php artisan route:cache
- php artisan route:clear
建立控制器
php artisan make:controller StudentController
建立Rest風格資源控制器(帶有index、create、store、edit、update、destroy、show方法)
php artisan make:controllerPhotoController--resource
建立模型
php artisan make:model Student
建立新建表的遷移和修改表的遷移
php artisan make:migration create_users_table--create=students//建立students表
php artisan make:migration add_votes_to_users_table--table=students//給students表增加votes欄位
執行遷移
php artisan migrate
建立模型的時候同時生成新建表的遷移
php artisan make:modelStudent-m
回滾上一次的遷移
php artisan migrate:rollback
回滾所有遷移
php artisan migrate:reset
建立填充
php artisan make:seeder StudentTableSeeder
執行單個填充
php artisan db:seed--class=StudentTableSeeder
執行所有填充
php artisan db:seed
建立中介軟體(app/Http/Middleware 下)
php artisan make:middlewareActivity
建立佇列(資料庫)的表遷移(需要執行遷移才生效)
php artisan queue:table
建立佇列類(app/jobs下):
php artisan make:jobSendEmail
建立請求類(app/Http/Requests下)
php artisan make:request CreateArticleRequest
=================================分割線================================
1、控制器 or Model
// 5.2版本建立一個空控制器
php artisan make:controller BlogController
// 建立Rest風格資源控制器
php artisan make:controller PhotoController --resource
// 指定建立位置 在app目錄下建立TestController
php artisan make:controller App\TestController
// 指定路徑建立
php artisan make:Model App\\Models\\User(linux or macOs 加上轉義符)
// 資料遷移
php artisan migrate
2、資料遷移(Migration)
// 建立遷移
php artisan make:migration create_users_table
// 指定路徑
php artisan make:migration --path=app\providers create_users_table
// 一次性建立
// 下述命令會做兩件事情:
// 在 app 目錄下建立模型類 App\Post
// 建立用於建立 posts 表的遷移,該遷移檔案位於 database/migrations 目錄下。
php artisan make:model --migration Post
3、資料填充(Seeder)
// 建立要填充的資料類
php artisan make:seeder UsersTableSeeder
// 資料填充(全部表)
php artisan db:seed
// 指定要填充的表
php artisan db:seed --class=UsersTableSeeder
4、路由
// 檢視所有路由
php artisan route:list
5、tinker命令插入單條資料
E:\opensource\blog>php artisan tinker
Psy Shell v0.7.2 (PHP 5.6.19 鈥?cli) by Justin Hileman
>>> $user = new App\User;
=> App\User {#628}
>>> $user->name = 'admin'
=> "admin"
>>> $user->email = 'fation@126.com'
=> "fation@126.com"
>>> $user->password = bcrypt('123456');
=> "$2y$10$kyCuwqSpzGTTZgAPMgCDgung9miGRygyCAIKHJhylYyW9osKKc3lu"
>>> $user->save();
"insert into
users(
name,
email,
password,
updated_at,
created_at) v
alues (?, ?, ?, ?, ?)"
=> true
>>> exit
Exit: Goodbye.
6、Request請求,主要用於表單驗證
php artisan make:request TagCreateRequest
建立的類存放在 app/Http/Requests 目錄下
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
class TagCreateRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* [@return](https://my.oschina.net/u/556800) bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* [@return](https://my.oschina.net/u/556800) array
*/
public function rules()
{
return [
'tag' => 'required|unique:tags,tag',
'title' => 'required',
'subtitle' => 'required',
'layout' => 'required',
];
}
}
使用時只需在對應的Controller方法裡引入
// 注意這裡使用的是TagCreateRequest
public function store(TagCreateRequest $request)
{
$tag = new Tag();
foreach (array_keys($this->fields) as $field) {
$tag->$field = $request->get($field);
}
$tag->save();
return redirect('/admin/tag')
->withSuccess("The tag '$tag->tag' was created.");
}
7、 建立artisan命令列(laravel5.*版本)
// 以下命令生成檔案 app/Console/Commands/TopicMakeExcerptCommand.php
php artisan make:console TopicMakeExcerptCommand --command=topics:excerpt
//在 app/Console/Kernel.php 檔案裡面, 新增以下
protected $commands = [
\App\Console\Commands\TopicMakeExcerptCommand::class,
];
//啟用artisan命令列。
//在生成的TopicMakeExcerptCommand.php 檔案, 修改以下區域
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class TopicMakeExcerptCommand extends Command
{
/**
* 1. 這裡是命令列呼叫的名字, 如這裡的:
topics:excerpt,
* 命令列呼叫的時候就是
php artisan topics:excerpt``*
* [@var](https://my.oschina.net/u/1030343) string
*/
protected $signature = 'topics:excerpt';
/**
* 2. 這裡填寫命令列的描述, 當執行
php artisan時
* 可以看得見.
*
* @var string
*/
protected $description = '這裡修改為命令列的描述';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* 3. 這裡是放要執行的程式碼, 如在我這個例子裡面,
* 生成摘要, 並保持.
*
* @return mixed
*/
public function handle()
{
$topics = Topic::all();
$transfer_count = 0;
foreach ($topics as $topic) {
if (empty($topic->excerpt))
{
$topic->excerpt = Topic::makeExcerpt($topic->body);
$topic->save();
$transfer_count++;
}
}
$this->info("Transfer old data count: " . $transfer_count);
$this->info("It's Done, have a good day.");
}
}
// 命令列呼叫
php artisan topics:excerpt
========================分割線====================================
artisan 命令列表一
- php artisan –help:顯示幫助命令的使用格式,同 php artisan help
- php artisan –version:顯示當前使用的 Laravel 版本
- php artisan changes:列出當前版本相對於上一版本的主要變化
- php artisan down:將站點設為維護狀態
- php artisan up:將站點設回可訪問狀態
- php artisan optimize:優化應用程式效能,生成自動載入檔案,且產生聚合編譯檔案 bootstrap/compiled.php
- php artisan dump-autoload:重新生成框架的自動載入檔案,相當於 optimize 的再操作
- php artisan clear-compiled:清除編譯生成的檔案,相當於 optimize 的反操作
- php artisan migrate:執行資料遷移
- php artisan routes:列出當前應用全部的路由規則
- php artisan serve:使用 PHP 內建的開發伺服器啟動應用 【要求 PHP 版本在 5.4 或以上】
- php artisan tinker:進入與當前應用環境繫結的 REPL 環境,相當於 Rails 框架的 rails console 命令
- php artisan workbench 組織名/包名:這將在應用根目錄產生一個名為 workbench 的資料夾,然後按 組織名/包名 的形式生成一個符合 Composer 標準的包結構,並自動安裝必要的依賴【需要首先完善好 app/config/workbench.php 檔案的內容】
- php artisan cache:clear:清除應用程式快取
- php artisan command:make 命令名:在 app/commands 目錄下生成一個名為 命令名.php 的自定義命令檔案
- php artisan controller:make 控制器名:在 app/controllers 目錄下生成一個名為 控制器名.php 的控制器檔案
- php artisan db:seed:對資料庫填充種子資料,以用於測試
- php artisan key:generate:生成一個隨機的 key,並自動更新到 app/config/app.ph 的 key 鍵值對
- php artisan migrate:install:初始化遷移資料表
- php artisan migrate:make 遷移名:這將在 app/database/migrations 目錄下生成一個名為 時間+遷移名.php 的資料遷移檔案,並自動執行一次 php artisan dump-autoload 命令
- php artisan migrate:refresh:重置並重新執行所有的資料遷移
- php artisan migrate:reset:回滾所有的資料遷移
- php artisan migrate:rollback:回滾最近一次資料遷移
- php artisan session:table:生成一個用於 session 的資料遷移檔案
artisan 命令列表二
Laravel Framework version 5.3.28
Usage:
command [options] [arguments]
Options:
-h, –help 顯示幫助資訊
-q, –quiet 不要輸出任何資訊
-V, –version 顯示當前應用版本
–ansi 強制 ANSI 輸出
–no-ansi 關閉 ANSI 輸出
-n, –no-interaction 不要詢問任何互動問題
–env[=ENV] 在當前環境下執行命令
-v|vv|vvv, –verbose 升級詳細資訊: 1 正常輸出, 2 更多詳細資訊 3 除錯使用
可用的命令:
clear-compiled 移除編譯類檔案
down 將應用程式置於維護模式
env 顯示當前框架的環境 比如 local
help 顯示一個命令的幫助資訊 比如 php artisan help make:controller
inspire 顯示一個灌輸的引用(inspiring quote)
list 列出所有命令
migrate 執行資料庫遷移
optimize 優化框架以獲得更好的效能
serve 在PHP開發伺服器上提供應用程式
tinker 與您的應用程式互動
up 使應用程式退出維護模式
app
app:name 設定應用名稱空間
auth
auth:clear-resets 重新整理過期密碼重置令牌
cache
cache:clear 重新整理應用程式快取
cache:table 為快取資料庫表建立遷移
config
config:cache 建立快取檔案以加快配置載入
config:clear 刪除配置快取檔案
db
db:seed Seed the database with records
event
event:generate 基於註冊生成缺少的事件和偵聽器
key
key:generate 設定應用key
make
make:auth 搭建基本的登入和註冊的檢視和路由
make:command 建立一個新的 Artisan 命令
make:controller 建立一個新的 controller 類
make:event 建立一個新的 event 類
make:job 建立一個新的 job 類
make:listener 建立一個新的 event listener 類
make:mail 建立一個新的 email 類
make:middleware 建立一個新的 middleware 類
make:migration 建立一個新的 migration 檔案
make:model 建立一個新的 Eloquent model 類
make:notification 建立一個新的 notification 類
make:policy 建立一個新的 policy 類
make:provider 建立一個新的 service provider 類
make:request 建立一個新的 form request 類
make:seeder 建立一個新的 seeder 類
make:test 建立一個新的 test 類
migrate
migrate:install 建立遷移儲存庫
migrate:refresh 重置並重新執行所有遷移
migrate:reset 回滾所有資料庫遷移
migrate:rollback 回滾上次資料庫遷移
migrate:status 顯示每個遷移的狀態
notifications
notifications:table 為通知表建立遷移
queue
queue:failed 列出所有失敗的佇列作業s
queue:failed-table 為失敗的佇列作業資料庫表建立遷移
queue:flush 清除所有失敗的佇列作業
queue:forget 刪除失敗的佇列作業
queue:listen 監聽一個給定的佇列
queue:restart 在其當前作業之後重新啟動佇列worker守護程式
queue:retry 重試一個失敗的佇列任務
queue:table 為佇列作業資料庫表建立遷移
queue:work 開始作為守護程式在佇列上處理作業
route
route:cache 建立路由快取檔案用於更快的路由註冊
route:clear 刪除路由快取檔案
route:list 列出所有註冊的路由
schedule
schedule:run 執行已排程的命令
session
session:table 為會話資料庫表建立遷移
storage
storage:link 建立符號連結 從 “public/storage” 到 “storage/app/public”
vendor
vendor:publish 從供應商包釋出任何可釋出的資產
view
view:clear 清除所有編譯的檢視檔案
artisan 命令使用不知道的,可以使用如下命令檢視幫助資訊
[plain] view plain copy
- php artisan help 命令
比如檢視 make:controller 如何使用
[plain] view plain copy
wujiangwei:laravel wu$ php artisan help make:controller
Usage:
make:controller [options] [–]
Arguments:
name The name of the class
Options:
-m, –model[=MODEL] Generate a resource controller for the given model.
-r, –resource Generate a resource controller class.
-h, –help Display this help message
-q, –quiet Do not output any message
-V, –version Display this application version
–ansi Force ANSI output
–no-ansi Disable ANSI output
-n, –no-interaction Do not ask any interactive question
–env[=ENV] The environment the command should run under
-v|vv|vvv, –verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Help:
Create a new controller class
本作品採用《CC 協議》,轉載必須註明作者和本文連結