Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
- Remove middleware reference from Gitea Traefik labels (caused routing issues) - Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s) - Add explicit service reference in Traefik labels - Fix intermittent 504 timeouts by improving PostgreSQL connection handling Fixes Gitea unreachability via git.michaelschiemer.de
54 lines
1.6 KiB
PHP
54 lines
1.6 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Framework\ExceptionHandling;
|
|
|
|
/**
|
|
* Manages global exception, error, and shutdown handlers
|
|
*
|
|
* Supports early registration with basic handlers before Discovery,
|
|
* and replacement with full handlers after Discovery.
|
|
*/
|
|
final readonly class ExceptionHandlerManager
|
|
{
|
|
public function __construct(
|
|
private ErrorHandlerInterface $errorHandler,
|
|
private ExceptionHandler $exceptionHandler,
|
|
private ShutdownHandlerInterface $shutdownHandler
|
|
) {
|
|
$this->registerErrorHandler($this->errorHandler);
|
|
$this->registerExceptionHandler($this->exceptionHandler);
|
|
$this->registerShutdownHandler($this->shutdownHandler);
|
|
}
|
|
|
|
/**
|
|
* Create ExceptionHandlerManager with basic handlers for early registration
|
|
*
|
|
* This factory method creates a manager with minimal handlers that don't
|
|
* require full dependencies. Useful for registering handlers before Discovery.
|
|
*/
|
|
public static function createWithBasicHandlers(): self
|
|
{
|
|
return new self(
|
|
new BasicErrorHandler(),
|
|
new BasicGlobalExceptionHandler(),
|
|
new BasicShutdownHandler()
|
|
);
|
|
}
|
|
|
|
public function registerExceptionHandler(ExceptionHandler $handler): void
|
|
{
|
|
set_exception_handler($handler->handle(...));
|
|
}
|
|
|
|
private function registerErrorHandler(ErrorHandlerInterface $handler): void
|
|
{
|
|
set_error_handler($handler->handle(...), E_ALL);
|
|
}
|
|
|
|
public function registerShutdownHandler(ShutdownHandlerInterface $handler): void
|
|
{
|
|
register_shutdown_function($handler->handle(...));
|
|
}
|
|
}
|