Switon's HTTP pipeline for request and response handling, attribute routing, action return normalization, request-stage filters, and transport adapters.
- Request pipeline:
RequestHandlerInterfacedrives adjust, auth, route, validate, invoke, render, and finish stages. - Attribute routes:
#[RequestMapping]and action mappings keep routes close to controllers. - Action input binding:
RequestBody,RequestData,RequestQuery, andFiltersshape action input. - Request filters: cross-cutting filters can add request IDs, locale, CORS, and slowlog handling.
- Return normalization:
NormalizeActionReturnTransformerturns common return values into framework responses. - Response helpers:
ResponseInterfacecoversjson(),text(),raw(), andredirect(). - Runtime modes:
ServerOptionscan switch betweenauto,fpm,php, andswoole.
composer require switon/httpuse Switon\Core\Attribute\Autowired;
use Switon\Http\Controller;
use Switon\Http\RequestInterface;
use Switon\Http\ResponseInterface;
use Switon\Routing\Attribute\GetMapping;
use Switon\Routing\Attribute\RequestMapping;
#[RequestMapping('/api/users')]
final class UserController extends Controller
{
#[Autowired] protected RequestInterface $request;
#[Autowired] protected ResponseInterface $response;
#[GetMapping('{id}')]
public function showAction(int $id): array
{
return [
'id' => $id,
'locale' => $this->request->query('locale'),
];
}
#[GetMapping('{id}/raw')]
public function rawAction(int $id): ResponseInterface
{
return $this->response->json(['id' => $id]);
}
}Docs: https://docs.switon.dev/latest/http
MIT.