per-seo / jsonerror
JSON Error for Slim 4. This Renderer print a JSON when a 500 error occours
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/per-seo/jsonerror
Requires
- php: >=7.4
- psr/http-server-middleware: ^1
Requires (Dev)
- friendsofphp/php-cs-fixer: >=2
- overtrue/phplint: ^2
- php-di/php-di: >=6.4
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.4
- slim/psr7: ^1
- slim/slim: ^4
- squizlabs/php_codesniffer: ^3
README
A simple Renderer for Slim4 framework for JSON error Message. Usage is very simple, just add in your container settings this array:
'settings_error' => [
	'reporting' => ['E_ALL', '~E_NOTICE'],
        'display_error_details' => true,
	'log_errors' => true,
        'log_error_details' => true
]
And enable this Middleware (in the Container DI part of your Slim4 Project) with:
<?php
use Psr\Container\ContainerInterface;
use Slim\App;
use Slim\Middleware\ErrorMiddleware;
use PerSeo\ErrorRenderer\JsonError;
ErrorMiddleware::class => function (ContainerInterface $container) {
        $app = $container->get(App::class);
        $settings = ($container->has('settings_error') ? $container->get('settings_error') : [
		'reporting' => ['E_ALL','~E_NOTICE'],
        	'display_error_details' => true,
		'log_errors' => true,
        	'log_error_details' => true
	]);
        $errorMiddleware = new ErrorMiddleware(
            $app->getCallableResolver(),
            $app->getResponseFactory(),
            (bool)$settings['display_error_details'],
            (bool)$settings['log_errors'],
            (bool)$settings['log_error_details']
        );
        $errorHandler = $errorMiddleware->getDefaultErrorHandler();
        $errorHandler->registerErrorRenderer('application/json', JsonError::class);
	$errorHandler->forceContentType('application/json');
        return $errorMiddleware;
    }
After this, your Slim 4 500 error page returns a JSON string with all debug informations.
Simple, isn't it?