ohansyah/laravel-exception-handler

Laravel API 异常处理器,带有可读性强的错误信息

0.1.20 2024-03-04 02:46 UTC

This package is auto-updated.

Last update: 2024-09-06 08:54:00 UTC


README

Latest Version Total Downloads License

简介

Laravel API 异常处理器,带有可读性强的错误信息。然而,此包专门设计为与较旧的 PHP 版本以及 Laravel 或 Lumen 旧项目兼容。

安装

composer require ohansyah/laravel-exception-handler

注册服务提供者

$app->register(Ohansyah\ExceptionHandler\ExceptionHandlerServiceProvider::class);

注册配置

$app->configure('exception-handler');

刷新

composer dump-autoload

发布配置和语言

php artisan exception-handler:publish

用法

使用特质,简单地使用可用的方法 resException()、resError()、resSuccess()

use Ohansyah\ExceptionHandler\Traits\ResponseTransform;

class Name 
{
    use ResponseTransform;
    ...
    resException(Exception $exception);
    resError($responseMessage, int $responseCode = 400, array $additionals = []);
    resSuccess($responseMessage, int $responseCode = 200);
    resThrowable(Throwable $throwable);
}

全局异常处理器

// app\Exceptions\Handler.php
if (!($exception instanceof ValidationException) && !($exception instanceof NotFoundHttpException)) {
    return $this->resException($exception);
}

示例用法

Request:
GET {{your-base-url}}/exception-handler/error?code=500

Response:
{
    "status": "error",
    "message": "Kami telah menerima laporan bahwa layanan ini sedang mengalami gangguan. Mohon maaf atas ketidaknyamanannya dan mohon menunggu sebentar.",
    "errors": {
        "message": [
            "Kami telah menerima laporan bahwa layanan ini sedang mengalami gangguan. Mohon maaf atas ketidaknyamanannya dan mohon menunggu sebentar."
        ]
    },
    "title": "Ups!! Terjadi Kendala Teknis",
    "exception": null
}

翻译

resources\lang\en\http.php
resources\lang\id\http.php

配置

// config\exception-handler.php

'trace_exception' => env('SERVICE_TRACE_EXCEPTION', true),

许可证

Laravel 异常处理器包是开源软件,许可协议为 MIT 许可证