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: 本番環境でマイグレーションを実行する際に確認をスキップします。
マイグレーションのロールバック
直前に実行されたマイグレーションのバッチを取り消します。これにより、作成されたテーブルや変更が元に戻ります。
コメント