refactor: Framework code cleanup and improvements

- DI dependency graph improvements
- Database connection updates
- HTTP middleware chain optimizations
- Routing middleware cleanup
This commit is contained in:
2025-10-31 23:38:23 +01:00
parent dd5c1687e3
commit d84c5dbacb
5 changed files with 17 additions and 62 deletions

View File

@@ -30,21 +30,20 @@ final readonly class HttpMiddlewareChain implements HttpMiddlewareChainInterface
$this->stateManager = new MiddlewareStateManager()->forRequest($request);
// Start der Middleware-Chain loggen
error_log("🚀 MIDDLEWARE CHAIN START - URI: {$request->path}, Method: {$request->method->value}, Middleware-Count: " . count($this->middlewares));
// Middleware-Stack durchlaufen
$resultContext = $this->doProcessMiddlewareStack($context, 0);
// Ende der Middleware-Chain loggen
// Ende der Middleware-Chain
if ($resultContext->hasResponse()) {
error_log("✅ MIDDLEWARE CHAIN COMPLETE - Final Response Status: {$resultContext->response?->status->value}");
return $resultContext->response;
}
// Wenn keine Response vorhanden ist, ist das ein Fehler in der Middleware-Konfiguration
error_log("❌ MIDDLEWARE CHAIN FAILED - No response created after processing all middlewares");
$this->logger->error('No response created after processing all middlewares', LogContext::withData([
'uri' => $request->path,
'method' => $request->method->value,
'middleware_count' => count($this->middlewares),
]));
throw new \RuntimeException(sprintf(
'Keine Response nach Middleware-Chain erstellt. Stellen Sie sicher, dass eine DefaultResponseMiddleware konfiguriert ist. URI: %s, Method: %s, Middleware-Count: %d',
@@ -66,12 +65,6 @@ final readonly class HttpMiddlewareChain implements HttpMiddlewareChainInterface
$middleware = $this->middlewares[$index];
$middlewareName = $this->getMiddlewareName($middleware);
// Start der Middleware loggen
error_log("🔄 MIDDLEWARE #{$index} START: {$middlewareName}");
// Status VOR der Middleware loggen
$this->logDebug("VOR Middleware #{$index} ({$middlewareName})", $context, $index);
// Next-Handler erstellen, der zur nächsten Middleware weiterleitet
$next = new readonly class ($this, $index, $middlewareName) implements Next {
public function __construct(
@@ -157,38 +150,13 @@ final readonly class HttpMiddlewareChain implements HttpMiddlewareChainInterface
?int $responseBeforeStatus,
?int $responseAfterStatus
): void {
// Response wurde erstellt
if (! $hadResponseBefore && $hasResponseAfter) {
error_log("✅ RESPONSE CREATED by Middleware #{$index} ({$middlewareName}) - Status: {$responseAfterStatus}");
return;
}
// Response wurde verloren
// Response wurde verloren - das ist ein Problem
if ($hadResponseBefore && ! $hasResponseAfter) {
error_log("❌ RESPONSE LOST by Middleware #{$index} ({$middlewareName}) - Previous Status: {$responseBeforeStatus}");
return;
}
// Response-Status wurde geändert
if ($hadResponseBefore && $hasResponseAfter && $responseBeforeStatus !== $responseAfterStatus) {
error_log("🔄 RESPONSE MODIFIED by Middleware #{$index} ({$middlewareName}) - Status: {$responseBeforeStatus}{$responseAfterStatus}");
return;
}
// Response blieb unverändert (normal)
if ($hadResponseBefore && $hasResponseAfter && $responseBeforeStatus === $responseAfterStatus) {
error_log("➡️ RESPONSE PASSED THROUGH Middleware #{$index} ({$middlewareName}) - Status: {$responseAfterStatus}");
return;
}
// Keine Response vor und nach der Middleware (normal für frühe Middlewares)
// @phpstan-ignore booleanNot.alwaysTrue
if (! $hadResponseBefore && ! $hasResponseAfter) {
error_log("⚪ NO RESPONSE before/after Middleware #{$index} ({$middlewareName})");
$this->logger->warning('Response lost by middleware', LogContext::withData([
'middleware' => $middlewareName,
'middleware_index' => $index,
'previous_status' => $responseBeforeStatus,
]));
}
}

View File

@@ -149,11 +149,6 @@ final readonly class RoutingMiddleware implements HttpMiddleware
);
}
error_log("RoutingMiddleware: Setting CONTROLLER_RESULT of type: " . get_class($result));
if (method_exists($result, 'template')) {
error_log("RoutingMiddleware: Result template: " . $result->template);
}
$stateManager->set(StateKey::CONTROLLER_RESULT, $result);
// Nächste Middleware aufrufen