<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
hamidreza2005 / laravel-api-error-handler example snippets
return [
/*
* this is where you define which handler deal with which errors. each handler can handle multiple errors
*/
"handlers" =>[
NotFoundExceptionHandler::class => [
"Symfony\Component\HttpKernel\Exception\NotFoundHttpException",
"Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException"
],
ServerInternalExceptionHandler::class => [
"ErrorException",
"Illuminate\Database\QueryException"
],
AccessDeniedExceptionHandler::class => [
"Illuminate\Auth\AuthenticationException",
"Symfony\Component\HttpKernel\Exception\HttpException"
],
ValidationExceptionHandler::class => [
"Illuminate\Validation\ValidationException"
],
],
/*
* if the app is not in debug mode. all unknown exceptions will be handled by this.
*/
"internal_error_handler" => ServerInternalExceptionHandler::class,
];
namespace App\Exceptions;
use hamidreza2005\LaravelApiErrorHandler\Traits\ApiErrorHandler;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
class Handler extends ExceptionHandler
{
use ApiErrorHandler;
/**
* A list of the exception types that are not reported. * * @var array
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed for validation exceptions. * * @var array
*/
protected $dontFlash = [
'password',
'password_confirmation',
];
/**
* Register the exception handling callbacks for the application. * * @return void
*/
public function register()
{
//
}
public function render($request, Throwable $e)
{
return $this->handle($this->prepareException($e));
}
}
class MyException extends ExceptionHandler
{
public function handleStatusCode():void
{
$this->statusCode = 499;
}
public function handleMessage():void
{
$this->message = "My Message";
}
}