【Laravel】キューとジョブの使い方入門|Queue・Job・Workerの仕組みと実装方法
HTTP リクエストの中でメール送信、帳票生成、外部 API 呼び出しを抱え込むと、ユーザーは画面の完了を待たされます。処理が伸びたときはタイムアウトや二重送信も起きやすくなり、失敗時の再実行もコントローラ内だけでは扱いづらくなります ...
【PHP】trait(トレイト)の使い方|コードの再利用と多重継承の代替パターン
複数の Eloquent モデルに同じローカルスコープやミューテータをコピペしていませんか。筆者も、共通条件を複数モデルへそのまま写したあと、片方だけ修正漏れがあり、本番では期待と異なる挙動になった経験があります。チーム開発でも同様の ...
【Laravel】ミドルウェアの作成と使い方|認証・ログ・レート制限の実装パターン
「ログインチェックをコントローラの先頭に書いていたら、気づけば10本以上のコントローラに同じコードが散らばっていた」──実務でよく見る状況です。認証・ログ出力・レート制限は要件としては別々でも、HTTP の入口では必ず組み合わさって現 ...
【AWS】S3の静的ウェブサイトホスティング完全ガイド|CloudFrontとの組み合わせ設定
「EC2でサーバーを動かし続けるのはコストがもったいない」「静的サイトならもっと安く運用できるはず」
そう思って S3 の静的ホスティングを調べ始めたものの、S3 単体の設定だけでは HTTPS が使えない、ディレクトリ形 ...
【MySQL】EXPLAINの読み方とSLOW QUERYの改善方法|インデックスチューニング実践
「このクエリ、なんでこんなに遅いんだろう…」
本番で突然レスポンスが遅くなり、ログを漁っていたら数秒かかっているSQLを発見した、という経験は誰でも一度はあるはずです。
MySQLのチューニングで最初に使うのが ...
【PHP】例外処理(try-catch-finally)の使い方|カスタム例外クラスの作り方も解説
PHP でプログラムを書いていると、ファイル読み込みや外部 API 呼び出しなど「失敗する可能性のある処理」を扱う場面が必ずあります。こうした処理を安全に扱うための仕組みが例外(Exception)であり、try・catch・fina ...
【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への連続リクエストなど、時間のかかる処理をコントローラの中に書いていませんか?
そのままではレスポンスが遅くなり、ユーザー体験を損ないます。タイムアウトや失敗時の再試行も難しくなり ...