1. Go to this page and download the library: Download maduser/argon-error 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/ */
maduser / argon-error example snippets
use Maduser\Argon\Container\ArgonContainer;
use Maduser\Argon\Error\Provider\ErrorHandlerServiceProvider;
$container = new ArgonContainer();
$container->register(ErrorHandlerServiceProvider::class);
$container->boot();
use App\Http\AppExceptionPolicy;
use Maduser\Argon\Error\Contracts\ExceptionPolicyInterface;
$container->set(AppExceptionPolicy::class)->tag(ExceptionPolicyInterface::class);
use Maduser\Argon\Error\Contracts\ExceptionPolicyInterface;
use Maduser\Argon\Error\Contracts\ExceptionPolicyRegistryInterface;
use App\Exceptions\PaymentFailed;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\StreamFactoryInterface;
use Psr\Log\LoggerInterface;
use RuntimeException;
use Throwable;
final readonly class AppExceptionPolicy implements ExceptionPolicyInterface
{
public function __construct(
private LoggerInterface $logger,
private ResponseFactoryInterface $responses,
private StreamFactoryInterface $streams,
) {
}
public function register(ExceptionPolicyRegistryInterface $exceptions): void
{
$exceptions->report(
Throwable::class,
fn(Throwable $e, ServerRequestInterface $request): void => $this->logger->error(
$e->getMessage(),
['exception' => $e, 'path' => $request->getUri()->getPath()]
)
);
$exceptions->report(
PaymentFailed::class,
fn(PaymentFailed $e): void => $this->notifyBillingChannel($e)
);
$exceptions->render(
RuntimeException::class,
fn(RuntimeException $e): ?ResponseInterface => $this->responses
->createResponse(500)
->withHeader('Content-Type', 'application/json')
->withBody($this->streams->createStream('{"error":"Runtime failure"}'))
);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.