対象バージョン: Laravel 13.x / PHP 8.3+(2026年時点のシリーズ基準)
一次ソース: Laravel 13.x 公式ドキュメント
こんにちは。この記事は、PHP の Web フレームワーク Laravel に初めて触れる方向けの入門です。インストールから、ルーティング・コントローラ・Blade ビューを使った最小サンプル、さらに Migration / Eloquent の入口までを一通り通します。高度な認証・キュー・テストなどは扱いません。まずは「ローカルで動くアプリを自分で作れる」状態を目指します。
この記事で分かること
- Laravel とは何か(ざっくり)
- Laravel 13 が求める PHP / ツールの要件
- プロジェクト作成と開発サーバ起動
- 主要なディレクトリの役割
- ルーティング → コントローラ → Blade の最小フロー
- Migration / DB / Eloquent の入口
- 次に学ぶべきテーマの地図
Laravelとは何か
Laravel は、PHP 向けのフルスタック Web アプリケーションフレームワークです。ルーティング、コントローラ、テンプレート(Blade)、ORM(Eloquent)、マイグレーション、バリデーションなどをひと通り揃えており、決まりごとの多い Web アプリ開発を効率よく進められます。
公式は「表現力のある優雅な構文」と、依存注入・キュー・テストなどの強力な機能を強調しています(Installation — Meet Laravel)。初心者でも段階的に学べる一方、実務規模にも耐える設計です。
本シリーズでは Laravel 13.x を基準にします。古い記事の手順(特に文字列コントローラ構文など)は、現行では動かないことがあるため、この記事の手順を優先してください。
Laravel 13の要件
Laravel 13.x は PHP 8.3 以上が必須です(Release Notes)。サポート表では PHP 8.3〜8.5 が対象です。
確認コマンド例:
php -v
PHP 8.3.x またはそれ以上が表示されれば要件を満たします。8.2 以下では Laravel 13 のインストール自体が失敗します。
フレームワーク本体の composer.json でも "php": "^8.3" が要求されています。記事中のコード例・Artisan コマンドは、この前提で書いています。
環境の準備(前提ツール)
新規 Laravel アプリを作る前に、次を用意します(Installation)。
| ツール | 役割 |
|---|---|
| PHP 8.3+ | ランタイム |
| Composer | PHP パッケージ管理・プロジェクト作成 |
| Node.js + npm(または Bun) | フロント資産(Vite)のビルド |
| (任意)Laravel Herd | macOS / Windows 向けの統合ローカル環境 |
まだ PHP / Composer が入っていない場合、公式は OS 別の php.new インストーラも案内しています。すでに入っている場合は、Laravel インストーラだけ追加すれば十分です。
composer global require laravel/installer
PATH の通し方(重要)
グローバルに入れた laravel コマンドを使うには、Composer の bin ディレクトリを PATH に通します。ホーム直下の ~/.composer/vendor/bin を決め打ちしないでください。 Linux では XDG 準拠で ~/.config/composer/vendor/bin になることが多いです。
正しい確認方法:
composer global config bin-dir --absolute
表示されたパスを ~/.bashrc や ~/.zshrc の PATH に追加し、シェルを開き直します。
# 例(表示されたパスに置き換える)
export PATH="$(composer global config bin-dir --absolute):$PATH"
laravel と打ってヘルプが出れば準備完了です。
プロジェクトを作成する
インストーラ導入後、任意の作業ディレクトリで新規アプリを作成します。
laravel new sampleapp
cd sampleapp
アプリ名 sampleapp は任意です。作成時にスターターキット選択などの対話が出る場合は、入門ではデフォルト(キットなし)で問題ありません。
別手段: composer create-project
インストーラを使わず、Composer だけで作ることもできます。
composer create-project laravel/laravel sampleapp
cd sampleapp
どちらも Laravel 13 系のスケルトンが得られます。本記事の以降のパス説明は、プロジェクト直下をカレントにした前提です。
作成直後、SQLite(database/database.sqlite)と初期マイグレーションが用意される構成が一般的です(Installation — Databases and Migrations)。.env の DB_* を変えれば MySQL / PostgreSQL にも切り替えられます。
開発サーバを起動する
公式の推奨フローは、フロント資産の準備のあと composer run dev です(サーバ・キュー・Vite などをまとめて起動)。
npm install && npm run build
composer run dev
ブラウザで http://localhost:8000(または表示された URL)を開きます。
簡易起動: php artisan serve
HTTP だけ確認したいときは、PHP の組み込みサーバでも足ります。
php artisan serve
既定は http://127.0.0.1:8000 です。Vite のホットリロードは含まれないため、CSS/JS を本格的に触る段階では composer run dev の方が適しています。入門の「Hello を出す」段階ではどちらでも構いません。
主なディレクトリ構成
Laravel は「だいたいここに置く」という慣習がはっきりしています(Directory Structure)。入門でまず覚える場所だけ挙げます。
| パス | 役割 |
|---|---|
app/Http/Controllers |
HTTP リクエストを処理するコントローラ |
app/Models |
Eloquent モデル |
routes/web.php |
ブラウザ向けルート定義 |
resources/views |
Blade テンプレート(.blade.php) |
database/migrations |
DB スキーマ変更の履歴 |
config |
設定ファイル |
public |
Web 公開ルート(index.php) |
.env |
環境ごとの設定(秘密情報。リポジトリに載せない) |
ルート直下の vendor は Composer 依存です。通常は手で編集しません。
ルーティングの基本
HTTP リクエストの入口がルートです。ブラウザ向けは routes/web.php に書きます(Routing)。
Laravel 13 の fresh アプリには、すでに次のような定義があります。
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
つまり / にアクセスすると resources/views/welcome.blade.php が表示されます。同じ URI を二重に追加しないよう、後続ではこの定義を置き換えます。
クロージャの中で view('welcome') を返す書き方自体は現行でも有効です。次節でコントローラに移します。
コントローラを作る
処理が増えてきたら、ルートにロジックを直書きせずコントローラへ移します(Controllers)。
php artisan make:controller MessageController
app/Http/Controllers/MessageController.php が生成されます。次のようにメソッドを追加します。
<?php
namespace App\Http\Controllers;
use Illuminate\View\View;
class MessageController extends Controller
{
public function showMessage(): View
{
$message = 'Hello, Laravel!';
return view('welcome', ['message' => $message]);
}
}
view ヘルパの第 2 引数で、ビューへ渡すデータを配列指定できます(Views — Passing Data To Views)。
ルートをコントローラへつなぐ(配列構文)
routes/web.php を次のように置き換えます。
<?php
use App\Http\Controllers\MessageController;
use Illuminate\Support\Facades\Route;
Route::get('/', [MessageController::class, 'showMessage']);
Laravel 13 では、この callable 配列構文が公式の標準です。use でコントローラを読み込み、[クラス名::class, 'メソッド名'] で紐づけます。
古い資料に残っている「コントローラ名@メソッド名」形式の短い文字列ルートは、Laravel 13 の既定ではクラス解決に失敗します。必ず上記の配列構文を使ってください。
Blade / View で表示する
コントローラから渡した $message を HTML に出すには、Blade で {{ $message }} と書きます(Blade — Displaying Data)。{{ }} は自動でエスケープされ、XSS 対策になります。
fresh の welcome.blade.php は紹介用のリッチなページです。サンプルでは内容を最小の HTML に置き換えると動作確認がしやすいです。
resources/views/welcome.blade.php を次のようにします。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Laravel 入門サンプル</title>
</head>
<body>
<h1>{{ $message }}</h1>
</body>
</html>
動作確認(成功条件)
開発サーバを起動した状態でブラウザを開き、表示が次になれば成功です。
- URL:
http://127.0.0.1:8000またはhttp://localhost:8000 - 画面に
Hello, Laravel!と出る
コントローラでデータを渡し、Blade で出力する、という最小の一連の流れがここまでです。
別ビュー名(例: message.blade.php)にしてもよいです。その場合は return view('message', ...) とファイル名を揃えます。
Migration / DB / Eloquent の入口
画面が表示できたら、次はデータの永続化です。ここでは「入口」だけ押さえ、深いリレーションやクエリ最適化には立ち入りません。
マイグレーションとは
マイグレーションは DB スキーマのバージョン管理です(Migrations)。テーブル定義を PHP コードで共有し、php artisan migrate で適用します。
php artisan make:migration create_posts_table
php artisan migrate
生成ファイルは database/migrations 配下です。up で作成、down で取り消し、という対です。
Laravel 13 の新規アプリは、既定で SQLite を使い、作成時に初期マイグレーション(users など)が走る構成が一般的です。MySQL などを使う場合は .env の DB_* を変更してから php artisan migrate を実行します。
Eloquent モデルとは
Eloquent はテーブルと PHP クラスを対応づける ORM です。モデルは通常 app/Models に置きます。
php artisan make:model Post -m
-m を付けると、モデルと対応するマイグレーションが同時に作れます。テーブルへ行の取得・作成は、あとから Post::all() や Post::create([...]) のような形で行います(詳細は公式の Eloquent ドキュメントへ)。
入門の次ステップとしては、「posts テーブルを作り、一覧を Blade で出す」小さな CRUD がちょうどよい目標です。
次に学ぶとよいこと
ここまでで「作る → 起動する → ルートとコントローラとビューをつなぐ → DB の入口を知る」まで到達しました。続けて学ぶと効果が高いテーマの例です。
- Eloquent / DB 連携 — 一覧・作成・更新・削除の基本
- バリデーションとフォーム — ユーザー入力の受け取り方
- 認証・認可 — 認証・認可の基本(ログインと権限)
- RESTful API — LaravelでRESTful APIを作成する方法
- Blade レイアウト / コンポーネント — 共通ヘッダや部品化
- Vite とフロント資産 — CSS/JS のビルド
認証・認可については、同サイトの現行記事「認証・認可の基本(ログインと権限)」も参照できます。まずは公式ドキュメントの Routing / Eloquent / Authentication から深掘りするのが安全です。
まとめ
- Laravel 13.x は PHP 8.3+ 必須。バージョンを本文でも意識する
- 作成は
laravel new(またはcomposer create-project)。bin の PATH はcomposer global config bin-dir --absoluteで確認 - 起動は公式推奨の
composer run dev、簡易ならphp artisan serve - ルートは
[MessageController::class, 'showMessage']配列構文。古い短い文字列ルート構文は使わない - コントローラから
view(..., ['message' => ...])で渡し、Blade で{{ $message }}を出すと「Hello, Laravel!」が再現できる - Migration / Eloquent はスキーマとモデルの入口。次は小さな CRUD へ
参考リンク(公式)
- Installation
- Release Notes(PHP 要件)
- Directory Structure
- Routing
- Controllers
- Blade
- Migrations
- Eloquent