PHP code example of andrewdyer / json-error-handler
1. Go to this page and download the library: Download andrewdyer/json-error-handler library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
andrewdyer / json-error-handler example snippets
use Slim\Factory\AppFactory;
$app = AppFactory::create();
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Exception\HttpNotFoundException;
$app->get('/hello', function (Request $request, Response $response): Response {
$response->getBody()->write(json_encode(['message' => 'Hello, world.']));
return $response->withHeader('Content-Type', 'application/json');
});
$app->get('/error', function (Request $request, Response $response): Response {
throw new HttpNotFoundException($request);
});
$app->run();
use AndrewDyer\JsonErrorHandler\JsonErrorHandler;
use AndrewDyer\ShutdownHandler\Adapters\CallableErrorResponder;
use AndrewDyer\ShutdownHandler\Adapters\CallableResponseEmitter;
use AndrewDyer\ShutdownHandler\ShutdownHandler;
use Slim\Factory\AppFactory;
use Slim\Factory\ServerRequestCreatorFactory;
use Slim\ResponseEmitter;
$app = AppFactory::create();
$displayErrorDetails = true;
$errorMiddleware = $app->addErrorMiddleware(
$displayErrorDetails,
logErrors: true,
logErrorDetails: true
);
$errorHandler = new JsonErrorHandler(
$app->getCallableResolver(),
$app->getResponseFactory(),
logger: null
);
$errorMiddleware->setDefaultErrorHandler($errorHandler);
$request = ServerRequestCreatorFactory::create()->createServerRequestFromGlobals();
$responseEmitter = new ResponseEmitter();
$shutdownHandler = new ShutdownHandler(
$request,
new CallableErrorResponder(
static fn ($request, $exception, bool $displayErrorDetails) => $errorHandler(
$request,
$exception,
$displayErrorDetails,
logError: true,
logErrorDetails: true
)
),
new CallableResponseEmitter(
static fn ($response) use ($responseEmitter) => $responseEmitter->emit($response)
),
$displayErrorDetails
);
register_shutdown_function($shutdownHandler);
$response = $app->handle($request);
$responseEmitter->emit($response);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.