1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Laravel]Handler.phpを初めて知った際のメモ

Posted at

これはなに

  • 業務上で得た知識をメモるだけ
  • 他人が読む前提で書いていません

Handlerとは?

  • Laravelプロジェクト作ると最初から入ってるクラス
  • ログ出力・アラート通知・レンダリングなどを行う

なぜ知ったのか

  • 特定のアラートのみエラー通知から除外する対応を行ったが、エラー通知を行っている箇所がHandler.php
    • renderJsonメソッドでログを出力していたため除外対応を行ったが、reportメソッドでも出力を行っていた
      • 結果、reportメソッド側でも同様の除外対応を実施する事となった

renderとは?

  • 例外をHTTPレスポンスに変換したり
  • 例外毎に出力するメッセージを変えたり
  • 特定の例外を詰め替えたり
$e instanceof BackedEnumCaseNotFoundException => new NotFoundHttpException($e->getMessage(), $e)

reportとは?

  • ログに書いたり
  • メールやSlackへ通知を行ったり
  • dontreportに設定すればレポートされない
    • セキュリティ上報告したくない例外を除外するため
A list of the internal exception types that should not be reported.
protected $internalDontReport = [
        AuthenticationException::class,
        AuthorizationException::class,
        ~~~

まとめ

  • renderでレンダリングしてreportで通知
  • 役割が違うのでそれぞれ適した実装をする
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?