Laravelのエラー出力形式を変更する方法

PHPz
リリース: 2023-04-21 10:30:56
オリジナル
799 人が閲覧しました

Laravel は、多くの開発者が Web アプリケーションの開発に使用する人気の PHP フレームワークです。開発プロセス中に、いくつかのエラーや例外が発生することは避けられません。デフォルトでは、Laravel はエラー情報を PHP のエラー ログに出力しますが、これは開発者にとってあまり便利ではありません。そこで今回はLaravelのエラー出力フォームを変更する方法を紹介します。

  1. 設定ファイルを変更する

Laravelのエラーメッセージの出力形式を設定ファイルで変更できます。プロジェクトのルート ディレクトリにある .env ファイルを開き、APP_DEBUG 行の値を true に変更してデバッグ モードを有効にすると、Laravel もエラーを報告します。 . 情報はブラウザに直接出力されます。

APP_DEBUG=true
ログイン後にコピー

ただし、この方法にはセキュリティ上のリスクがあります。デバッグ モードではアプリケーションの詳細がすべて公開されるため、攻撃者にアプリケーションを攻撃する機会が与えられる可能性があります。したがって、運用環境では、デバッグ モードを無効にし、APP_DEBUG の値を false に変更する必要があります。

APP_DEBUG=false
ログイン後にコピー

ただし、この修正後もブラウザ側ではエラーメッセージが表示されないため、さらに設定が必要です。

  1. Whoops パッケージのインストール

Whoops は、エラー情報をより美しく表示できる PHP エラー処理ライブラリです。 Laravel はデフォルトで Whoops を統合しますが、その依存関係パッケージをインストールする必要があります。

Composer を使用してプロジェクトのルート ディレクトリにインストールします:

composer require filp/whoops
ログイン後にコピー

インストールが完了したら、App\Exceptions の render メソッドを使用する必要があります。 \Handler クラス エラー メッセージを美しくします。

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use Whoops\Exception\Inspector;
use Whoops\Handler\PrettyPageHandler;

class Handler extends ExceptionHandler
{
    public function render($request, Exception $exception)
    {
        $response = new Response();

        if (config('app.debug')) {
            $whoops = new \Whoops\Run;
            $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
            $response->setContent($whoops->handleException($exception));
        } else {
            $response->setContent($this->renderHttpException($exception));
        }

        $response->setStatusCode($this->isHttpException($exception) ? $exception->getStatusCode() : 500);

        $response->exception = $exception;

        return $response;
    }
}
ログイン後にコピー

上記のコードでは、アプリケーションがデバッグモードの場合はWhoopsライブラリのPrettyPageHandlerを使用して美化処理を行い、それ以外の場合は処理を行いません。

  1. カスタマイズされたエラー ページ

Whoops ライブラリの使用に加えて、Laravel は開発者がエラー ページをカスタマイズできるメソッドも提供します。関連するテンプレート ファイルを resources/views/errors ディレクトリに作成するだけです。

たとえば、アプリケーションで 404 エラーが発生した場合、Laravel は resources/views/errors/404.blade.php でテンプレート ファイルを検索し、次の場合はデフォルトのテンプレート ファイルを使用します。見つかりません。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>404 Not Found</title>
    </head>
    <body>
        <h1>404</h1>
        <p>Page not found.</p>
    </body>
</html>
ログイン後にコピー

このようにして、開発者はアプリケーションのスタイルに合わせてエラー ページをカスタマイズできます。

概要

開発プロセス中、完全なエラー報告メカニズムは、開発者がエラーをより迅速に見つけて修正するのに役立ちます。この記事では、Laravel のエラー出力形式を変更するいくつかの方法 (構成ファイルの変更、Whoops パッケージのインストール、エラー ページのカスタマイズ) を紹介します。これらの方法により、開発者は自分に最適なエラー出力形式を見つけ、開発効率とコード品質を向上させることができます。

以上がLaravelのエラー出力形式を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート