💡この記事のゴール
Laravelの基本構造(MVC)と開発の流れを、自身の振り返りも兼ねて初学者でも理解できる形でまとめました。最後には小さなアプリを作れるようになる道筋も紹介します。
Laravelとは?
Laravelは、PHPで作られた人気のWebアプリケーションフレームワークです。
アプリ開発に必要な機能(テンプレート、DB接続、ルーティングなど)があらかじめ用意されているため、効率的に開発を進めることができます。
Laravelの主な特徴
- モダンで書きやすく、可読性が高い文法
- ComposerやArtisanコマンドなど便利な開発支援ツールが充実
- 規則性のある開発ができるため、保守・拡張が容易
- 豊富なライブラリと拡張性
- MVCアーキテクチャに基づいた設計
MVCとは?
MVCは、以下3つの役割を分けた設計パターンです。
| 略称 | 名前 | 役割 |
|---|---|---|
| M | Model(モデル) | データやビジネスロジックを管理。DBとのやり取りを担当 |
| V | View(ビュー) | ユーザーに見せる画面(HTML)を作成 |
| C | Controller(コントローラー) | ユーザーのリクエストを受け取り、ModelとViewをつなぐ役割 |
⭐️メリット
- 役割分担が明確
- 再利用性が高い
- チーム開発で分業しやすい
- 保守・拡張がしやすい
MVCの各役割(Laravelの場合)
Model(モデル)
- データやビジネスロジックを管理
- Laravelでは Eloquent ORM を利用して、SQLを書かずにDB操作が可能
- DBテーブル定義は Migration ファイルで管理
View(ビュー)
- ユーザーに見せるHTML部分
- LaravelではBladeテンプレートを使用
- PHPをHTMLに埋め込み、条件分岐やループも簡単に書ける
Controller(コントローラー)
- ユーザーのリクエストを受け取り、必要に応じてModelを操作
- 取得したデータをViewに渡す
- ロジック肥大化防止のため、ServiceやRepositoryに分離することもある
MVCの処理の流れ(Laravelの場合)
- ユーザーがブラウザでURLにアクセス
-
routes/web.phpで、どのControllerに処理を渡すかを定義 - ControllerがModelを使ってデータを取得または保存
- データをViewに渡してHTMLを生成
- ユーザーにレスポンスを返す
補足:FormRequestクラス
フォームから送信されたデータは、バリデーション(不正値のチェック)が必要です。LaravelではFormRequestクラスを使うことで、バリデーションルールを専用ファイルにまとめることができます。
// app/Http/Requests/StoreUserRequest.php
public function rules()
{
return [
'name' => 'required|max:255',
'email' => 'required|email',
];
}
Controllerでは以下のように安全にデータを取得できます。
public function store(StoreUserRequest $request)
{
$validated = $request->validated();
}
ルーティングとは?
アクセスされたURLと処理内容を結びつける役割です。
Route::get('/users', [UserController::class, 'index']);
上記では、/users にアクセスがあったら UserController の index メソッドが呼ばれます。
この記事を読んだら...(次のステップ)
まずは小さなTodoアプリやCRUD機能を持つアプリを作ってみるのがおすすめです。
実際に、「ルーティング→コントローラー→モデル→ビュー」の流れを一度経験するだけで、Laravelの理解がぐっと深まります。
少しでもためになったら幸いです!