chore: complete update

This commit is contained in:
2025-07-17 16:24:20 +02:00
parent 899227b0a4
commit 64a7051137
1300 changed files with 85570 additions and 2756 deletions

View File

@@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
namespace App\Framework\Http\Middlewares;
use App\Framework\Http\HttpMiddleware;
use App\Framework\Http\MiddlewareContext;
use App\Framework\Http\MiddlewarePriority;
use App\Framework\Http\MiddlewarePriorityAttribute;
use App\Framework\Http\RequestStateManager;
use App\Framework\Http\Request;
use App\Framework\Http\Response;
use App\Framework\Http\ResponseManipulator;
#[MiddlewarePriorityAttribute(MiddlewarePriority::CORS)]
final readonly class CORSMiddleware implements HttpMiddleware
{
public function __construct(
private ResponseManipulator $manipulator
) {}
public function __invoke(MiddlewareContext $context, callable $next, RequestStateManager $stateManager): MiddlewareContext
{
// Debug-Ausgabe vor der Verarbeitung
#var_dump('CORS Middleware Start - Kontext hat Response: ' . ($context->hasResponse() ? 'ja' : 'nein'));
// Nächste Middleware aufrufen UND den Kontext mit der Response behalten
$resultContext = $next($context);
// Debug-Ausgabe nach der Verarbeitung
#var_dump('CORS Middleware End - Kontext hat Response: ' . ($resultContext->hasResponse() ? 'ja' : 'nein'));
// Wenn eine Response vorhanden ist, CORS-Header hinzufügen
if ($resultContext->hasResponse()) {
$response = $resultContext->response;
// Aktualisierte Headers erstellen
$updatedHeaders = $response->headers->with('Access-Control-Allow-Origin', '*');
$updatedHeaders = $updatedHeaders->with('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
$updatedHeaders = $updatedHeaders->with('Access-Control-Allow-Headers', 'Content-Type, Authorization');
// Neue Response mit aktualisierten Headers erstellen
$updatedResponse = $this->manipulator->withHeaders($response, $updatedHeaders);
// Kontext mit der aktualisierten Response zurückgeben
return $resultContext->withResponse($updatedResponse);
}
// Wenn keine Response vorhanden ist, Kontext unverändert zurückgeben
return $resultContext;
}
}