【Laravel】Artisanコマンド入門:よく使うコマンドまとめ

laravelアイキャッチ Laravel

こんにちは、かつコーチです。

前回、.envファイルの役割を解説した際に、php artisan key:generateというコマンドを実行しました。

「artisan」という単語、実はこれまでも何度かさらっと登場していました。

今回は、Laravel開発で日常的にお世話になる「Artisan(アルチザン)コマンド」を、まとめて紹介していきます。

Artisanとは?

Laravelに標準搭載されたコマンドラインツール

Artisanは、Laravelプロジェクトに標準で付属しているコマンドラインツールです。

「artisan(職人)」という名前の通り、開発作業を効率化するための道具箱のような存在です。

プロジェクト直下にあるartisanというファイルに対して、php artisan コマンド名という形で実行します。

php artisan serve

これは前々回の環境構築で使った、ローカルサーバーを起動するコマンドでしたね。

なぜArtisanが便利なのか

PHP基礎編で自作のミニフレームワークを作ったとき、新しいコントローラを追加するには、ファイルを手作業で作成し、クラス名やnamespaceを一から書く必要がありました。

Artisanを使うと、こうした「毎回書く定型的なコード(雛形)」をコマンド一発で自動生成できます。

タイプミスも減りますし、Laravelの標準的な書き方(お作法)に沿ったファイルが自動で作られるのも大きなメリットです。

よく使うArtisanコマンド一覧

コマンド一覧表

まずは、初学者の間によく使うコマンドを一覧にまとめます。

コマンド用途
php artisan serve開発用のローカルサーバーを起動する
php artisan make:controllerコントローラの雛形を作成する
php artisan make:modelモデルの雛形を作成する
php artisan make:migrationマイグレーションファイル(テーブル定義)の雛形を作成する
php artisan migrateマイグレーションを実行し、実際にテーブルを作成する
php artisan route:list定義済みのルーティング一覧を表示する
php artisan tinkerLaravelのコードを対話的に試せるコンソールを起動する
php artisan key:generate.envAPP_KEYを生成する

コントローラを作る:make:controller

前回の記事で紹介したMyPageControllerを、手動でファイルを作る代わりにコマンドで作ってみます。

php artisan make:controller MyPageController

実行すると、app/Http/Controllers/MyPageController.phpが自動生成されます。

<?php

namespace App\Http\Controllers;

class MyPageController extends Controller
{
    //
}

namespaceの宣言や親クラスの継承まで、あらかじめ用意された状態で生成されるので、あとは中身のメソッドを書き足すだけです。

モデルとマイグレーションを同時に作る

モデルとマイグレーションは、セットで作ることが多いです。

-mオプションを付けると、モデルと同時にマイグレーションファイルも生成できます。

php artisan make:model Post -m

app/Models/Post.php(モデル)と、database/migrations/xxxx_create_posts_table.php(マイグレーション)が同時に作られます。

テーブルを実際に作る:migrate

マイグレーションファイルを作っただけでは、まだデータベースにテーブルは作られていません。

php artisan migrate

このコマンドを実行して初めて、マイグレーションファイルの内容通りにテーブルが作成されます。

PHP基礎編でCREATE TABLE文を直接実行していた作業が、このコマンド一発に置き換わるイメージです。

つまずきやすいポイント:migrateのやり直しでハマる

よくあるつまずき

マイグレーションファイルを編集した後、もう一度migrateを実行しても、テーブルの中身が更新されないことがあります。

❌ Before:編集後にそのままmigrateを実行する

# マイグレーションファイルにカラムを追加してから
php artisan migrate
Nothing to migrate.

私が最初にこれで戸惑ったとき、「え、ちゃんとカラム追加したのに反映されてない…」と原因が分からず、しばらく悩みました。

原因は、Laravelのマイグレーションが「まだ実行していないファイルだけ」を対象にする仕組みだったからです。

一度実行済みのマイグレーションファイルを後から編集しても、migrateコマンドはそれを「実行済み」として扱うため、素通りしてしまいます。

✅ After:開発中ならmigrate:freshでやり直す

php artisan migrate:fresh

migrate:freshは、既存のテーブルを一度すべて削除してから、マイグレーションを最初から実行し直すコマンドです。

これで、編集したマイグレーションファイルの内容が正しく反映されます。

注意点として、migrate:freshは既存のデータをすべて削除するため、本番環境や大事なデータが入った環境では絶対に実行しないでください。

開発中のローカル環境限定のコマンド、と覚えておくと安全です。

tinkerでお試し実行する

コードを本格的に書く前に、ちょっとした動作確認をしたいときはtinkerが便利です。

php artisan tinker
>>> App\Models\Post::count()
=> 0

コントローラやViewを作らずに、Eloquentの動きだけをその場で試せるので、学習中の動作確認にも重宝します。

まとめ

この記事のポイント

  • ArtisanはLaravel標準のコマンドラインツールで、定型的なコード生成や作業を効率化してくれる
  • make:controllermake:modelで雛形を自動生成できる
  • migrateはマイグレーションファイルを元にテーブルを作成するが、実行済みファイルの編集は反映されない
  • 開発中にマイグレーションをやり直したいときはmigrate:freshを使う(本番環境では厳禁)
  • tinkerを使うと、コードを本格的に書く前に手軽に動作確認ができる

次に読むべき記事

環境構築・基本のコマンドが分かったところで、次はいよいよLaravelの心臓部とも言える「ルーティング」を学んでいきましょう。

→ 次の記事:Laravelのルーティング基礎:Route::getから学ぶ

タイトルとURLをコピーしました