これまでのLaravelシリーズでは、基礎から実装まで一通り解説してきました。
- 環境構築
- ルーティング
- Controller
- Blade
- Eloquent
- Migration
- Form / Validation
- API
- 認証
これらを理解すれば、LaravelでWebアプリを作ることは可能です。
しかし実務ではさらに重要なのが
どう構成するか
つまり
プロジェクト設計(アーキテクチャ)
です。
この記事では実務でよく使われるLaravelの構成を解説します。
実務で重要な3つ
Laravel実務で特に重要なのは次の3つです。
- ディレクトリ構成
- API設計
- フロントエンド連携
ディレクトリ構成(実務)
基本構成
app/
├ Http/
│ ├ Controllers/
│
├ Models/
│
├ Services/
│
├ Repositories/
Controllers
app/Http/Controllers
役割
- リクエスト受け取り
- レスポンス返却
Models
app/Models
役割
- DB操作
- Eloquent
Services
app/Services
役割
- ビジネスロジック
例
UserService
OrderService
Repositories(任意)
app/Repositories
役割
- DB処理分離
Controllerは薄くする
実務では
Controllerにロジックを書かない
ことが重要です。
悪い例
public function store(Request $request)
{
// ロジックが多すぎる
}
良い例
public function store(Request $request)
{
$this->userService->create($request);
}
API設計
実務ではLaravelは
APIサーバー
として使われることが多いです。
RESTful設計
| メソッド | URL | 意味 |
|---|---|---|
| GET | /users | 一覧 |
| POST | /users | 作成 |
| GET | /users/{id} | 詳細 |
| PUT | /users/{id} | 更新 |
| DELETE | /users/{id} | 削除 |
API Controller
app/Http/Controllers/Api
に分けるのが一般的です。
Resource(整形)
php artisan make:resource UserResource
例
return new UserResource($user);
フロントエンド連携
現在の主流構成
Laravel → API
React / Vue → UI
React連携
Laravel + React
- Axios
- REST API
Vue連携
Laravel + Vue
- Composition API
- Pinia
認証の構成
実務では次の2パターンがあります。
セッション認証
- Blade
- 管理画面
API認証
- Sanctum
- JWT
環境構成
.env
例
APP_ENV=production
APP_DEBUG=false
DB_DATABASE=app
本番環境の注意
キャッシュ
php artisan config:cache
php artisan route:cache
ログ
storage/logs
権限
storage/
bootstrap/cache
書き込み権限が必要
よくある構成ミス
Controller肥大化
→ Serviceへ分離
APIとWeb混在
→ ディレクトリ分け
型定義なし
→ TypeScriptと連携
Laravel + TypeScript
おすすめ構成
Laravel API
↓
React / Vue(TypeScript)
これにより
- 型安全
- 開発効率
- 保守性
が向上します。
Laravel開発の全体像
ルーティング
↓
Controller
↓
Service
↓
Model
↓
DB
↓
JSON or View
まとめ
この記事では Laravel実務構成 を解説しました。
重要なポイント
- Controllerは薄くする
- Serviceでロジック管理
- API中心設計
- フロントと分離
Laravelは設計次第で
大規模開発にも対応できる
強力なフレームワークです。
Laravelシリーズまとめ
このシリーズでは
Laravel基礎
環境構築
MVC
Blade
Eloquent
Migration
Validation
API
認証
実務構成
を解説しました。
これで
Laravelの基礎
はほぼ習得できています。


コメント