Skip to main content

Request handlers

Request handlers can be added in any namespace, but I advise you to add them in the App/Controller namespace.

UserOverviewRequestHandler.php
namespace App\Controller;

class UserOverviewRequestHandler
{
public function __construct(
private readonly UserOverviewRepository $userOverviewRepository,
) {
}

public function handle(
ServerRequestInterface $request,
ResponseInterface $response): ResponseInterface
{
$users = $this->userOverviewRepository->findonyBy(/*...*/);
$response->getBody()->write(/*...*/);

return $response;
}
}

After adding your request handler you'll need to register it as a route as well. Head over to config/routes.php and add it over there:

config/routes.php
return function (App $app) {
// Set default route strategy.
$routeCollector = $app->getRouteCollector();
$routeCollector->setDefaultInvocationStrategy(new RequestResponseArgs());

$app->get('/user/overview', UserOverviewRequestHandler::class.':handle');
};