【Laravel】php artisan make: コマンドでコード生成を効率化する(モデル・コントローラー・マイグレーション等)

Laravel

Laravel開発において避けて通れない「雛形(ボイラープレート)の自動生成」。日々の開発で頻繁に使う php artisan make: コマンドの組み合わせや、便利なオプションを自分用に整理しました。

Laravelでアプリケーションを構築する際、モデルやコントローラー、マイグレーションファイルを手動で一から作成するのは時間がかかりますし、タイポ(打ち間違い)の原因にもなります。

今回は、開発をスムーズに進めるために欠かせない php artisan make: コマンドの主要な組み合わせと、開発効率を爆発的に上げるオプションについて、備忘録としてまとめました。

1. 最もよく使うコマンドとオプション

モデル、マイグレーション、コントローラーは、基本的に「セット」で作成することがほとんどです。これらを1行のコマンドで同時に生成するオプションが非常に便利です。

究極のショートカット(モデル・マイグレーション・コントローラーの一括生成)

PHP
php artisan make:model Post -オプション

オプションは下記の組み合わせを利用出来ます。

  • -m (Migration): database/migrations/..._create_posts_table.php (マイグレーションファイル)
  • -c (Controller): app/Http/Controllers/PostController.php (コントローラー)
  • -r (Resource): コントローラー内に index, create, store, show, edit, update, destroy のCRUDメソッドの雛形をあらかじめ用意する
  • -f (Factory): テスト用のダミーデータ(1つの投稿データなど)の雛形
  • -s(Seeder): 初期データやダミーデータをデータベースに一括挿入する
  • -a(All):マイグレーション、シーダー、ファクトリ、ポリシー、コントローラ(フォームリクエスト付き)をすべて自動生成
  • –test(PHPUnit用): テスト用PHPファイルが作成される

2. カテゴリ別:頻出 make コマンド

単体、あるいは特定の組み合わせでよく使うコマンドの整理です。

① データベース関連

モデルやテストデータの準備で使用します。テスト用のダミーデータ生成(Factory/Seeder)は、開発初期段階で頻繁に作成します。

Bash
# マイグレーションファイルのみを単体作成
php artisan make:migration create_comments_table

# 初期データ投入用のシーダーを作成
php artisan make:seeder CommentSeeder

# ダミーデータ定義用のファクトリを作成
php artisan make:factory CommentFactory

② HTTP・ビジネスロジック関連

フォームのバリデーションルールをコントローラーから切り離す「FormRequest」や、API用のレスポンスを整形する「Resource」は、コードの可読性を保つために必須です。

Bash
# フォームリクエスト(バリデーション用)の作成
php artisan make:request StorePostRequest

# APIリソース(JSON整形用)の作成
php artisan make:resource PostResource

# ミドルウェア(認証やアクセス制限など)の作成
php artisan make:middleware CheckAdmin

3. 注意しておきたいポイント・命名規則

Laravelの make コマンドは、命名規則(コーディング規約)に従って実行することで、フレームワーク側が自動でリレーションやテーブル名を解決してくれます。

  • モデル名:
    • 必ず 「頭文字は大文字の単数形」 にする。(例: PostUserComment
    • 自動生成されるマイグレーション(テーブル名)は自動的に複数形(postsuser_comments)になります。
  • ファクトリ名:
    • モデル名に Factory をつける。(例: PostFactory
    • 命名規則を外れると、テスト実行時に「Class not found」のエラーに繋がることがあるため注意。

まとめと今後の展望

手動でファイルを作成すると、名前空間(namespace)の記述ミスや、格納ディレクトリのミスが起こりやすいです。 基本的には php artisan make: を通してファイルを生成することを徹底し、無駄なエラーで開発がストップするのを防いでいきましょう。

コメント