2022/05/31
Artisan とは Laravel 専用のコマンドです。
アーティザンと読み、『職人』という意味だそうです。
Artisan コマンドを実行すると Laravel のコントローラやモデルのひな形の作成、マイグレーションの実行など行えます。
Windows 上で実行するならコマンドプロンプトで操作します。
Artisan コマンドは、Laravel プロジェクトのルートディレクトリで実行します。
cd C:\xampp\htdocs\ { Laravelプロジェクト }
php artisan { artisanコマンド }
INDEX
Laravelのバージョン確認
$ php artisan --version
$ php artisan -v
make系
【 構文 】
$ php artisan make:作りたい種類 ファイル名 --オプション
コントローラの作成
MVCモデルのコントローラにあたる部分を作成します。
php artisan make:controller HogeController
# ディレクトリ作成
php artisan make:controller Auth/HogeController
キャメル記法で記述します。例)user + parameter ⇒ UserParameter
コントローラに関する詳しい説明はこちら
モデルの作成
MVC モデルのMにあたる部分です。
マイグレーションファイルの作成
マイグレーションとは、データベースのテーブルやカラムの追加や変更の定義を管理することを指します。
php artisan make:migration create_foo_table
スネーク記法 + 複数形 例)users , access_rankings
マイグレーションに関する詳しい説明はこちら
マイグレーションの実行
マイグレーションを実行するとマイグレーションファイルが反映されデータベースにテーブルが作成されます。
フォームリクエストの作成
フォームリクエストを作成します。
php artisan make:request FooRequest
キャメル記法 + 単数形 例)CheckUserRequest.php
フォームリクエストに関する詳しい説明はこちら
シーダーの作成
サンプルデータを入れることをシーダーといいます。
サービスプロバイダの作成
サービスプロバイダのスケルトンを作成します。
サービスプロバイダはオリジナルのクラスをファサードをとして定義する際に作成します。
ミドルウェアの作成
app/Http/Middleware
ディレクトリの中に生成されます。
# AdminAuthenticate という名前でミドルウェアを作成
php artisan make:middleware AdminAuthenticate
マイグレーション系
マイグレーション実行
作成したマイグレーションを実行してテーブルを新規作成します。
$ php artisan migrate
#------------------------------------------------
# エラーが出たら一度下記のコマンドを実行してみる
# 実行する前にオートロードを実行するといい
#------------------------------------------------
$ composer dump-autoload
一度実行したマイグレーションファイルは php artisan migrate
で再実行されることがありません。
テーブル定義変更用のマイグレーションファイルを別途作り、再度 php artisan migrete
を実行します。
マイグレーションファイルの作成
テーブル作成・変更用のマイグレーションファイルが作成されます。
# 書式
php artisan make:migration {テーブル名}_table
# 新規作成
php artisan make:migration create_users_table
# 編集
php artisan make:migration change_users_table
オプションをつけることで、テーブル名を含んだ雛型のマイグレーションファイルが作成されます。
テーブルの新規作成の場合
php artisan make:migration create_users_table --create=users
テーブルの編集の場合
php artisan make:migration change_users_table --table=users
ステータス
マイグレーションファイルと実行状況を見ることができます。
php artisan migrate:status
実行結果
+------+----------------------------------------+
| Ran? | Migration |
+------+----------------------------------------+
| Y | 2018_08_08_155034_create_users |
| Y | 2018_08_08_155046_add_column_to_users |
| Y | 2018_08_17_155520_add_column2_to_users |
| N | 2018_08_17_155811_add_column3_to_users |
+------+----------------------------------------+
ロールバック
一つ前のマイグレーション操作に戻します。
$ php artisan migrate:rollback
# 全部ロールバックしてからマイグレーションし直す
# マイグレーションに失敗したら使ってみる
# ただし、テーブルの中身は空になるので注意!
$ php artisan migrate:refresh
実行したマイグレーションファイルは migratinos テーブルで管理されています。batchカラムで制御しています。
mysql> select * from migrations;
+----------------------------------------+-------+
| migration | batch |
+----------------------------------------+-------+
| 2018_08_08_155034_create_users | 1 |
| 2018_08_17_155520_modify_users | 1 |
| 2018_08_17_155811_modify_users2 | 2 |
+----------------------------------------+-------+
リフレッシュ
DBを全てロールバックし、再度全マイグレーションを実行する。(データはすべて消去される。)
$ php artisan migrate:refresh
リセット
全てのマイグレーションをロールバックする。
$ php artisan migrate:reset
キャッシュクリア系
「キャッシュをクリアしたのに反映されない!」という方は以下のコマンドをコピペして実行してみてください。
php artisan cache:clear; php artisan config:clear; php artisan route:clear; php artisan view:clear; composer dump-autoload
キャッシュをクリア
.envファイル や 設定データ(config/app.php)を編集したらキャッシュをクリアにして変更内容を反映させます。
また、マイグレーションを実行して DB の構成を変更したときもこのコマンドを利用します。
php artisan config:cache
config:cache
は Laravel の速度改善にもなります。その他にはroute:cache
も速度改善になります。
php artisan config:cache
コマンドはキャッシュを作成するコマンドですが、その前にキャッシュのクリアもします。
Viewキャッシュクリア
Laravel で View の変更が反映されないことがたまにあります。そんな時はこれ
php artisan view:clear
make系以外
メンテナンスモード
Laravelではデフォルトでメンテナンスモードが装備されています。
シーダーの作成&実行
# シーダーファイルの作成
php artisan make:seeder UsersTableSeeder
#------------------------------------------------
# シーダー実行する前にオートロードを実行するといい
#------------------------------------------------
composer dump-autoload
# シーダーの実行
php artisan db:seed
# オプションで --class を使えば特定のシーダーだけ実行される
php artisan db:seed --class=UsersTableSeeder
最適化
手動でコントローラを生成したり、リネームした場合は実行してみます。
php artisan optimize
ルーティングをキャッシュ
app/routes.php
に記述する、routeingに関する設定をキャッシュしてくれるものです。
php artisan route:cache
route:cache
はLaravel の速度改善にもなります。その他にはconfig:cache
があります。
アプリケーションキー(APP_KEY)の設定
.env
ファイルの APP_KEY をセットします。
.env.exampleをコピーするなどして、.envを手動で作成する場合には、手動でコマンドを実行してアプリケーションキーを作成しないといけません。
$ cp .env.example .env
$ php artisan key:generate
Laravel 付属のサーバー起動
PHP ビルトインサーバーの起動です。
ローカル環境でプロジェクトをWebアプリケーションとして起動することができます。
php artisan serve --port=8080
⇒
Ctr + c
ルート一覧
設定されているルートの確認です。
php artisan route:list
Tinkerについて
Laravelでデフォルトで用意されているツールです。Tinker を使うとメールのテスト送信ができたり、コマンドラインからデータベースに直接働きかけることができます。artisanコマンドで起動します。
# tinkerの起動
php artisan tinker
# メール送信
# 事前に.envファイルにsmtpサーバの設定が必要
Mail::raw('メール本文', function($message) { $message->to('送信先メールアドレス')->subject('メールタイトル'); });
### データベーステスト(Eloquent)
# Userテーブルのレコード全て表示
User::all()
# UserテーブルのID=1のレコードのみ表示
$user = User::find(1)
tinker を終了させる場合は exit
コマンドでOKです。
Aratisanコマンドに関しては以上です。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。