Laravelでよく使うArtisanコマンドをまとめました。
Artisanコマンドとは?
Artisanは、Laravelフレームワークに標準搭載されている強力なコマンドラインツールです。
Laravelプロジェクトのルートディレクトリに存在するartisan
ファイルがPHPスクリプトとして提供されており、これを利用することで様々な開発タスクを効率的に実行できます。
例えば、ファイルの作成、データベース操作、キャッシュ管理、ルーティング確認など、多岐にわたる操作をコマンド一つで実行できるため、Laravel開発において不可欠なツールと言えるでしょう。
よく使うArtisanコマンドまとめ
Laravel開発で頻繁に利用するArtisanコマンドをカテゴリ別にまとめました。
ファイル作成系コマンド
コントローラーの作成
Webアプリケーションの処理を担うコントローラーを作成します。
php artisan make:controller [コントローラークラス名]
作成されたコントローラーファイルはapp/Http/Controllers
ディレクトリに配置されます。
オプション:
--resource
: RESTfulなAPIに適した基本的なCRUD処理メソッド(index, create, store, show, edit, update, destroy)を含むリソースコントローラーを作成します。php artisan make:controller Api\UserController --resource
--api
: API専用のコントローラーを作成します。--resource
オプションと同様のメソッドを含みますが、createとeditメソッドは含まれません。php artisan make:controller Api\AuthController --api
モデルの作成
Eloquent ORMを利用するためのモデルを作成します。
php artisan make:model [モデルクラス名]
作成されたモデルファイルはapp/Models
ディレクトリに配置されます。
オプション:
-m
または--migration
: モデルと同時にマイグレーションファイルも作成します。php artisan make:model User -m
-f
または--factory
: モデルと同時にファクトリーファイルも作成します。(テストデータ生成に利用)php artisan make:model User -f
-s
または--seed
: モデルと同時にシーダーファイルも作成します。(初期データ投入に利用)php artisan make:model User -s
-c
または--controller
: モデルと同時にコントローラーファイルも作成します。php artisan make:model Post -c
-mfcs
: 上記の-m
,-f
,-c
,-s
オプションをまとめて指定し、マイグレーション、ファクトリー、コントローラー、シーダーファイルを同時に作成します。php artisan make:model Product -mfcs
マイグレーションファイルの作成
データベースのテーブル構造を定義するマイグレーションファイルを作成します。
php artisan make:migration create_[テーブル名]_table
作成されたマイグレーションファイルはdatabase/migrations
ディレクトリに配置されます。
オプション:
--create=[テーブル名]
: 新しいテーブルを作成するための基本的なスキーマを生成します。php artisan make:migration create_users_table --create=users
--table=[テーブル名]
: 既存のテーブルを変更するための基本的なスキーマを生成します。php artisan make:migration add_email_to_users_table --table=users
モデルファクトリーの作成
テストデータやシーダーで使用するモデルのファクトリーを作成します。
php artisan make:factory [ファクトリークラス名]
作成されたファクトリーファイルはdatabase/factories
ディレクトリに配置されます。通常、モデル名に対応したファクトリー名(例: UserFactory)が推奨されます。
シーダーの作成
データベースに初期データやテストデータを投入するためのシーダーを作成します。
php artisan make:seeder [シーダークラス名]
作成されたシーダーファイルはdatabase/seeders
ディレクトリに配置されます。
コマンド (バッチ) の作成
コンソールから実行できるカスタムコマンド(バッチ処理など)を作成します。
php artisan make:command [コマンドクラス名]
作成されたコマンドファイルはapp/Console/Commands
ディレクトリに配置されます。
作成したコマンドはphp artisan [コマンドの$signature]
で実行できます。$signature
はコマンドクラスのプロパティとして定義します。
例:
コマンドクラス (app/Console/Commands/GreetingCommand.php
):
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class GreetingCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'greeting:say {name} {--option=}';
/**
* The console command description.
*
* @var string
*/
protected $description = '指定した名前に挨拶します';
/**
* Execute the console command.
*/
public function handle()
{
$name = $this->argument('name');
$option = $this->option('option');
$message = "こんにちは、{$name}さん!";
if ($option) {
$message .= " (オプション: {$option})";
}
$this->info($message);
}
}
実行方法:
php artisan greeting:say Taro
php artisan greeting:say Jiro --option=test
イベントの作成
アプリケーション内で発生するイベントを定義します。
php artisan make:event [イベントクラス名]
作成されたイベントファイルはapp/Events
ディレクトリに配置されます。
リスナーの作成
イベントが発生した際に実行されるリスナー(処理)を定義します。
php artisan make:listener [リスナークラス名]
作成されたリスナーファイルはapp/Listeners
ディレクトリに配置されます。
ジョブの作成
非同期処理を行うためのジョブを作成します。
php artisan make:job [ジョブクラス名]
作成されたジョブファイルはapp/Jobs
ディレクトリに配置されます。
ミドルウェアの作成
HTTPリクエストの処理パイプラインに介入するミドルウェアを作成します。
php artisan make:middleware [ミドルウェアクラス名]
作成されたミドルウェアファイルはapp/Http/Middleware
ディレクトリに配置されます。
ポリシーの作成
モデルに対する認可ルールを定義するポリシーを作成します。
php artisan make:policy [ポリシークラス名] --model=[モデルクラス名]
作成されたポリシーファイルはapp/Policies
ディレクトリに配置されます。
フォームリクエストの作成
HTTPリクエストのバリデーションルールを定義するフォームリクエストを作成します。
php artisan make:request [リクエストクラス名]
作成されたフォームリクエストファイルはapp/Http/Requests
ディレクトリに配置されます。
データベース関連コマンド
マイグレーションの実行
database/migrations
ディレクトリに存在するマイグレーションファイルを実行し、データベースのテーブルを作成・変更します。
php artisan migrate
実行されたマイグレーションの情報はmigrations
テーブルに記録されます。このテーブル名はconfig/database.php
のmigrations
設定で変更可能です。
オプション:
--path="path/to/migrations"
: 特定のパスにあるマイグレーションファイルのみを実行します。php artisan migrate --path="database/migrations/users"
--database="connection-name"
: 特定のデータベース接続に対してマイグレーションを実行します。php artisan migrate --database="mysql_secondary"
--force
: 本番環境でマイグレーションを実行する際に確認をスキップします。
マイグレーションのロールバック
直前に実行されたマイグレーションのバッチを取り消します。これにより、作成されたテーブルや変更が元に戻ります。
php artisan migrate:rollback
オプション:
--step=N
: 実行した最後のN個のマイグレーションをロールバックします。php artisan migrate:rollback --step=2
マイグレーションのリセット
全てのマイグレーションを取り消します。データベースから全てのテーブルが削除されます。
php artisan migrate:reset
マイグレーションの再実行
migrate:reset
とmigrate
を連続して実行するコマンドです。データベースを初期状態に戻し、全てのマイグレーションを再度実行します。
php artisan migrate:refresh
オプション:
--seed
: マイグレーション後にシーダーも実行します。php artisan migrate:refresh --seed
全テーブルの削除
データベースから全てのテーブルを削除します。実行前に十分な注意が必要です。
php artisan db:wipe
オプション:
--database="connection-name"
: 特定のデータベース接続に対してテーブルを削除します。php artisan db:wipe --database="pgsql"
シーダーの実行
database/seeders
ディレクトリに存在するシーダーを実行し、データベースに初期データを投入します。
php artisan db:seed
デフォルトではDatabaseSeeder
クラスが実行されます。
オプション:
--class=[シーダークラス名]
: 特定のシーダーファイルのみを実行します。php artisan db:seed --class=UserSeeder
--database="connection-name"
: 特定のデータベース接続に対してシーダーを実行します。php artisan db:seed --database="sqlite"
キャッシュ関連コマンド
アプリケーションキャッシュのクリア
アプリケーション全体でキャッシュされているデータをクリアします。
php artisan cache:clear
設定キャッシュのクリア
config/
ディレクトリ以下の設定ファイルをキャッシュからクリアします。設定を変更した後に実行することで、変更が反映されます。
php artisan config:clear
設定キャッシュの作成
設定ファイルをキャッシュに保存し、アプリケーションのパフォーマンスを向上させます。本番環境での利用が推奨されます。
php artisan config:cache
ルートキャッシュのクリア
routes/
ディレクトリで定義されたルーティング情報をキャッシュからクリアします。ルーティングを変更した後に実行します。
php artisan route:clear
ルートキャッシュの作成
ルーティング情報をキャッシュに保存し、ルーティングの登録処理を高速化します。本番環境での利用が推奨されます。
php artisan route:cache
ビューキャッシュのクリア
コンパイル済みのBladeテンプレートなどのビューキャッシュをクリアします。ビューの変更が反映されない場合に試すと良いでしょう。
php artisan view:clear
ビューキャッシュの作成
Bladeテンプレートをコンパイルし、キャッシュとして保存します。アプリケーションのパフォーマンス向上に貢献します。
php artisan view:cache
その他便利コマンド
対話型 (REPL) コンソール実行
Laravelの環境下でPHPコードを対話的に実行できるコンソールを起動します。モデルの動作確認や簡単なデータ操作などに便利です。
php artisan tinker
Laravelのバージョン確認
インストールされているLaravelのバージョンを確認します。
php artisan --version
または
php artisan -V
アプリケーションのルーティング確認
定義されている全てのルーティングとその詳細(URI、メソッド、コントローラーなど)を一覧表示します。
php artisan route:list
オプション:
--name=[name]
: 特定の名前のルートのみを表示します。php artisan route:list --name=users.index
--path=[path]
: 特定のURIパスに一致するルートのみを表示します。php artisan route:list --path=api/users
--method=[method]
: 特定のHTTPメソッド(GET, POSTなど)のルートのみを表示します。php artisan route:list --method=POST
内蔵サーバー実行
開発用の軽量なWebサーバーを起動します。
php artisan serve
デフォルトでは`http://127.0.0.1:8000`でアクセスできます。
オプション:
--port=[ポート番号]
: サーバーがリッスンするポート番号を指定します。php artisan serve --port=8080
--host=[ホスト名]
: サーバーがリッスンするホスト名を指定します。php artisan serve --host=0.0.0.0
コマンド一覧の表示
Artisanで実行可能な全てのコマンドとその概要を表示します。
php artisan list
または
php artisan
アプリケーションキーの生成
アプリケーションの暗号化やセッション管理などに使用されるアプリケーションキーを生成します。.env
ファイルに設定されます。
php artisan key:generate
ストレージのリンク作成
public/storage
ディレクトリからstorage/app/public
へのシンボリックリンクを作成します。ユーザーがアップロードしたファイルなどをWebからアクセスできるようにするために使用します。
php artisan storage:link
最適化
アプリケーションのパフォーマンスを向上させるための様々な最適化処理を実行します。設定キャッシュ、ルートキャッシュ、ビューキャッシュの作成などをまとめて行います。
php artisan optimize
最適化のクリア
php artisan optimize
コマンドで生成されたキャッシュファイルをクリアします。
php artisan optimize:clear
イベントのキャッシュ
アプリケーションのイベントとリスナーの登録情報をキャッシュし、パフォーマンスを向上させます。
php artisan event:cache
イベントキャッシュのクリア
イベントキャッシュをクリアします。
php artisan event:clear
キューワーカースタート
キューに登録されたジョブの処理を開始します。
php artisan queue:work
オプション:
--connection=[接続名]
: 特定のキュー接続を使用します。php artisan queue:work --connection=redis
--queue=[キュー名]
: 特定のキューのみを処理します。php artisan queue:work --queue=emails,notifications
まとめ
artisanコマンドは、Laravelを使った開発を効率的かつスムーズに進めるための強力な武器です。
本記事で紹介したコマンド以外にも、様々な機能がartisanには備わっています。
必要に応じてphp artisan list
コマンドで利用可能なコマンドを確認して、使用していきましょう。
コメント