Laravel実務構成(ディレクトリ設計・API設計・フロント連携) – 12/12

これまでの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の基礎

はほぼ習得できています。

コメント

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