私の愛したLaravel 〜レールを越えたその先へ〜 by 武田 憲太郎

PHPerKaigi 2025
採択
2025/03/22 13:35〜
Track A
レギュラートーク(40分)

私の愛したLaravel 〜レールを越えたその先へ〜

KentarouTakeda 武田 憲太郎 KentarouTakeda

2年前、私は「Laravelへの異常な愛情」と題し、Laravelの基礎的な考え方と、そのレールがもたらす開発上の効果を紹介しました。Laravelをモデルに対するCRUDに特化したリソース志向フレームワークと捉え、コード量を削減しスタイルを統一する、これがLaravel Wayです。

しかし、現実のアプリケーションが、この枠組みの範囲に収まることはありません。

枠組みを超えた要件はプロジェクト固有の設計やルールで解決する必要があります。この試みは、成功することもありますが、それが「ほころび」となりコードベース全体の保守性を脅かすこともあります。これもまた、Laravelというフレームワークの特徴です。

逆に考えましょう。枠組みの外に出るのではなく、枠組み自体を拡張すれば良いのです。その手法を紹介します。

個別のテクニック

  • 認証の拡張
    認証プロバイダを理解し、Eloquentに依存しない認証や外部の認証基盤との連携を実現する
  • リクエスト処理の拡張
    Laravelの処理ライフサイクルを理解し、変則的な要件に対応する
  • Eloquentの拡張
    データベースドライバを理解し、データベース固有機能を自在に利用する
  • レスポンス処理の拡張
    Responsableを理解し、モダンフロントエンドへ対応する

拡張の考え方

  • あらゆるものを拡張
    Laravelの内部設計を知り、拡張の考え方を理解する
  • 再利用性と安定性
    パッケージ化による責務分離と、バージョンアップへの備え

題材として扱うOSS

  • Laravel Doctrine ORM
  • Laravel PostgreSQL Enhanced
  • Laravel Debugbar
  • Inertia.js
  • Testbench