【Laravel】キューとジョブの使い方入門|Queue・Job・Workerの仕組みと実装方法
HTTP リクエストの中でメール送信、帳票生成、外部 API 呼び出しを抱え込むと、ユーザーは画面の完了を待たされます。処理が伸びたときはタイムアウトや二重送信も起きやすくなり、失敗時の再実行もコントローラ内だけでは扱いづらくなります ...
【Laravel】ミドルウェアの作成と使い方|認証・ログ・レート制限の実装パターン
「ログインチェックをコントローラの先頭に書いていたら、気づけば10本以上のコントローラに同じコードが散らばっていた」──実務でよく見る状況です。認証・ログ出力・レート制限は要件としては別々でも、HTTP の入口では必ず組み合わさって現 ...
【Laravel】Eloquentのリレーション完全ガイド|hasOne・hasMany・belongsTo・belongsToMany
Laravel の Eloquent ORM(オブジェクトとテーブルを対応づける仕組み)では、テーブル間の関係を「リレーション」として PHP のメソッドで表現します。SQL の JOIN(複数テーブルを結合して取得するクエリ)を直接 ...
【Laravel】イベント(Event)とリスナー(Listener)の使い方|疎結合な設計パターン
Laravel アプリケーションが複雑になるにつれ、「ある処理が終わったら別の処理を動かす」という連鎖をコントローラや Service クラス内に直接書いてしまいがちです。Event/Listener の仕組みを使うと、この依存関係を ...
【Laravel】サービスコンテナとサービスプロバイダの仕組みをわかりやすく解説
Laravelを使い続けていると、「サービスコンテナって何をしているのか」「サービスプロバイダはどこに何を書けばいいのか」という疑問に当たることがあります。
ドキュメントを読んでも「依存性注入」「バインディング」「 ...
【Laravel】キュー(Queue)とジョブ(Job)の使い方|非同期処理の実装から本番運用まで
メール送信・PDF生成・外部APIへの連続リクエストなど、時間のかかる処理をコントローラの中に書いていませんか?
そのままではレスポンスが遅くなり、ユーザー体験を損ないます。タイムアウトや失敗時の再試行も難しくなり ...
【Laravel】Eloquentのスコープ(scope)の使い方|ローカルスコープ・グローバルスコープ完全解説
Laravelで「アクティブなユーザーだけ取得する」「論理削除されていないレコードだけ取得する」といった条件を、毎回 where で書いていませんか?
Eloquentのスコープ(scope)を使うと、よく使うクエ ...
【Laravel】.envファイルの設定と管理のベストプラクティス|config()・env()の使い分けと注意点
Laravelを使い始めると、.env ファイルと config() 関数の使い分けに迷うことがあります。
「どこで env() を使って、どこで config() を使えばいいのか」「config:cache を ...
【Laravel】N+1問題の検出と解消方法|with・load・lazy loadingの使い分け
Laravelでアプリケーションを開発していると、気づかないうちに大量のSQLが発行されてパフォーマンスが劣化することがあります。その原因の多くが N+1問題 です。
ページの表示が遅い、DBへの負荷が高い、といっ ...
【Laravel】バリデーションのカスタムルールを作成する方法|Rule::make・Invokable・FormRequest
Laravelの標準バリデーションルールは非常に充実していますが、業務ロジックに踏み込んだ検証は自前で実装する必要があります。
たとえば「特定のステータスのときだけ必須になる項目」「DBを参照して重複チェックをカス ...