🛒👉🏻Amazon スマイルSALE開催中!4月1日(火)まで !👈🏻🛒

Laravelで開発効率を上げるartisanコマンドまとめ

Laravel

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.phpmigrations設定で変更可能です。

オプション:

  • --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:resetmigrateを連続して実行するコマンドです。データベースを初期状態に戻し、全てのマイグレーションを再度実行します。

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コマンドで利用可能なコマンドを確認して、使用していきましょう。

コメント