Laravelのイベントとリスナーでアプリを拡張する:疎結合にして変更に強い実装へ
- 2026.02.10
Laravelのイベント/リスナーは「ある出来事が起きたら、関連処理をあとから追加できる」仕組み。コントローラやサービスに処理を詰め込まず、イベントを境界にして副作用(通知、ログ、外部API連携、集計更新など)を分離すると、機能追加や仕様変更が安全に進む。この記事は、イベント設計の考え方から、実装・ […]
Laravelのイベント/リスナーは「ある出来事が起きたら、関連処理をあとから追加できる」仕組み。コントローラやサービスに処理を詰め込まず、イベントを境界にして副作用(通知、ログ、外部API連携、集計更新など)を分離すると、機能追加や仕様変更が安全に進む。この記事は、イベント設計の考え方から、実装・ […]
Laravelの不具合対応は「原因の切り分けが速いかどうか」で作業時間が決まる。闇雲にログを増やすより、再現条件の固定→観測ポイントの設置→原因の絞り込み→恒久対策(テスト・監視)までを手順化すると、同じ種類の障害を短時間で処理できる。この記事は、Laravel標準機能(ログ、例外、tinker、H […]
Laravel Vaporは、LaravelアプリをAWSのサーバーレス基盤へ載せるための実運用向けプラットフォーム。サーバ管理を減らせる一方で、Lambda特有の制約(コールドスタート、ローカルディスクの扱い、長時間処理、ネットワーク、ログの見え方など)を前提に“アプリ側の作法”を整えないと、デプ […]
Laravelでマイクロサービスを進めるときは「とりあえず分割」ではなく、境界の決め方・通信方式・データ整合性・デプロイと監視まで含めて設計しないと、モノリスより遅くて壊れやすい構成になりやすい。最初に“分割する理由”を言語化し、境界(ドメイン/責務)と運用(障害時・変更頻度・組織構造)を合わせるこ […]
LaravelでRESTful APIを作るときは「動くものを早く作る」より「壊れないルールを最初に固める」方が結果的に速い。ポイントは、(1) リソース設計(URI/HTTPメソッド/ステータスコード)、(2) バリデーションとエラー形式の統一、(3) 認証・認可、(4) ページングとフィルタ、( […]
Laravel Mixは「webpackの難しさを隠して、Laravel向けのビルドを素早く組める」構成になっている。一方で、プロジェクトが大きくなるとビルド時間の増加、CSS/JSの肥大、キャッシュが効かない、環境差でエラーが出るなどの問題が目立つ。最適化は、(1) 開発時は速く回す、(2) 本番 […]
Eloquentのクエリビルディングは「書きやすい」のが強みだが、何も考えずに書くとN+1、不要なカラム取得、肥大したJOIN、無駄なOR条件、巨大IN、ページングの遅延などが起きやすい。効率化の軸はシンプルで、(1) 取得する行と列を最小化、(2) 関連は eager load と制約で制御、(3 […]
Laravelにおける認証実装は、要件を整理してから方式を選ばないと構成が破綻しやすい。SanctumはSPAや自社クライアント向けの軽量な認証を得意とし、PassportはOAuth2準拠の本格的な認可サーバを必要とするケースに向いている。どちらを採用するかは「誰が」「どこから」「どの粒度の権限で […]
Laravelの「Pivot Table Issues」は、belongsToMany の中間テーブル(pivot)が絡む操作で、想定した関連が取得できない/attach・detach・sync が失敗する/pivotカラムが取れない/重複が増える/外部キー制約で落ちる、といった問題の総称として扱わ […]
Laravel 11の新規インストール(Slim Skeleton)では、これまで「app配下にあった設定ファイル一式」が生成されなくなり、設定の多くが bootstrap/app.php に集約された。結果として「Kernel.phpが消えた」「例外ハンドラが見当たらない」「ミドルウェアはどこで登 […]