webservco/error

A PHP component/library.

v0.1.0 2023-07-20 12:49 UTC

This package is auto-updated.

Last update: 2024-04-21 16:57:10 UTC


README

A PHP component/library.

Custom application error handling.

Usage

Implement interfaces:

ErrorHandlerInterface

interface ErrorHandlerInterface
{
    public function handle(
        // The first parameter, errno, will be passed the level of the error raised, as an integer.
        int $errno,
        // The second parameter, errstr, will be passed the error message, as a string.
        string $errstr,
        // If the callback accepts a third parameter, errfile,
        // it will be passed the filename that the error was raised in, as a string.
        string $errfile,
        // If the callback accepts a fourth parameter, errline,
        // it will be passed the line number where the error was raised, as an integer.
        int $errline,
        // $errcontext removed in PHP 8
    ): bool;
}

ErrorHandlingServiceFactoryInterface

interface ErrorHandlingServiceFactoryInterface
{
    public function createErrorHandlingService(): ErrorHandlingServiceInterface;
}

ErrorHandlingServiceInterface

interface ErrorHandlingServiceInterface
{
    public function handlePreExecutionErrors(): bool;

    public function initialize(): bool;

    public function restore(): bool;
}

Example implementation

A simple handling service using a strict error handler (throws exception for any error) is provided.

// Create service.
$errorHandlingServiceFactory = new DefaultErrorHandlingServiceFactory();
$errorHandlingService = $errorHandlingServiceFactory->createErrorHandlingService();

// In application bootstrap:
$errorHandlingService->initialize();
$errorHandlingService->handlePreExecutionErrors();

// Application run.

// In application shutdown:
$errorHandlingService->restore();