Files
michaelschiemer/src/Framework/Http/Middlewares/ResponseGeneratorMiddleware.php
Michael Schiemer 5050c7d73a docs: consolidate documentation into organized structure
- Move 12 markdown files from root to docs/ subdirectories
- Organize documentation by category:
  • docs/troubleshooting/ (1 file)  - Technical troubleshooting guides
  • docs/deployment/      (4 files) - Deployment and security documentation
  • docs/guides/          (3 files) - Feature-specific guides
  • docs/planning/        (4 files) - Planning and improvement proposals

Root directory cleanup:
- Reduced from 16 to 4 markdown files in root
- Only essential project files remain:
  • CLAUDE.md (AI instructions)
  • README.md (Main project readme)
  • CLEANUP_PLAN.md (Current cleanup plan)
  • SRC_STRUCTURE_IMPROVEMENTS.md (Structure improvements)

This improves:
 Documentation discoverability
 Logical organization by purpose
 Clean root directory
 Better maintainability
2025-10-05 11:05:04 +02:00

58 lines
2.6 KiB
PHP

<?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\Next;
use App\Framework\Http\RequestStateManager;
use App\Framework\Http\StateKey;
use App\Framework\Router\RouteResponder;
#[MiddlewarePriorityAttribute(MiddlewarePriority::ROUTING, -1)]
final readonly class ResponseGeneratorMiddleware implements HttpMiddleware
{
public function __construct(
private RouteResponder $responder,
) {
}
public function __invoke(MiddlewareContext $context, Next $next, RequestStateManager $stateManager): MiddlewareContext
{
file_put_contents('/tmp/debug.log', "ResponseGeneratorMiddleware: __invoke called\n", FILE_APPEND);
file_put_contents('/tmp/debug.log', "ResponseGeneratorMiddleware: Has CONTROLLER_RESULT: " . ($stateManager->has(StateKey::CONTROLLER_RESULT) ? 'YES' : 'NO') . "\n", FILE_APPEND);
if ($stateManager->has(StateKey::CONTROLLER_RESULT)) {
$controllerResult = $stateManager->get(StateKey::CONTROLLER_RESULT);
file_put_contents('/tmp/debug.log', "ResponseGeneratorMiddleware: Controller result class: " . get_class($controllerResult) . "\n", FILE_APPEND);
error_log("ResponseGeneratorMiddleware: Controller result class: " . get_class($controllerResult));
if (method_exists($controllerResult, 'template')) {
file_put_contents('/tmp/debug.log', "ResponseGeneratorMiddleware: Template: " . $controllerResult->template . "\n", FILE_APPEND);
error_log("ResponseGeneratorMiddleware: Template: " . $controllerResult->template);
}
file_put_contents('/tmp/debug.log', "ResponseGeneratorMiddleware: About to call responder->respond\n", FILE_APPEND);
$originalResponse = $this->responder->respond($controllerResult);
file_put_contents('/tmp/debug.log', "ResponseGeneratorMiddleware: Response body length: " . strlen($originalResponse->body) . "\n", FILE_APPEND);
error_log("ResponseGeneratorMiddleware: Response body length: " . strlen($originalResponse->body));
// Kontext mit der generierten Response aktualisieren
$updatedContext = $context->withResponse($originalResponse);
$resultContext = $next($updatedContext);
if (! $resultContext->hasResponse()) {
return $resultContext->withResponse($originalResponse);
}
return $resultContext;
}
return $next($context);
}
}