sunder / http-router
PHP REST API router
dev-master
2024-11-06 09:40 UTC
Requires
- php: ^8.3
Requires (Dev)
This package is auto-updated.
Last update: 2025-06-06 11:13:11 UTC
README
Route definition
$router = new \Sunder\Http\Router(); $router->addRoute( method: "GET", route: '/some/path', cb: function (\Sunder\Http\Request\Request $request): \Sunder\Http\Request\Response { /** !!!Important!!! * Each route MUST return * \Sunder\Http\Request\Response object **/ return new \Sunder\Http\Request\Response( // Some code here ) } ); $response = $router->run(new \Sunder\Http\Request\Request( method: 'GET', uri: '/some/path' )) // --------------------------- // One of possible ways to use // --------------------------- foreach ($response->headers as $header) { header($header); } echo $response->body;
Dynamic route definition
$router = new \Sunder\Http\Router(); $router->addRoute( method: "GET", route: '/some/[dynamic]/', cb: function (\Sunder\Http\Request\Request $request): \Sunder\Http\Request\Response { /** * @var string 'some_dynamic_data' */ $var = $request->routeData['dynamic']; return new \Sunder\Http\Request\Response( // Some code here ) } ); $response = $router->run(new \Sunder\Http\Request\Request( method: 'GET', uri: '/some/some_dynamic_data/dynamic' ))
404 Route definition
By default, router has its own 404 handler (16 line)
But you can define your own
$router = new \Sunder\Http\Router(); // ... $router->set404Handler(function (\Sunder\Http\Request\Request $request) { return new \Sunder\Http\Request\Response( status: 404, body: 'Undefined route ...' ) });