logifire / nano-router
Router implementation using PSR-7
Installs: 16
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/logifire/nano-router
Requires
- php: >=8.4
- psr/container: ^1.0.0 | ^2.0.1
- psr/http-message: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- baryshev/tree-route: ^2.0
- logifire/nano-container: ^2.0.3
- logifire/nano-middleware: ^0.3.0
- nyholm/psr7: ^1.6
- phpunit/phpunit: ^10.0
Suggests
- logifire/nano-container: A PSR-11 container implementation, required for the middleware implementation.
- logifire/nano-middleware: A PSR-15 middleware implementation.
This package is auto-updated.
Last update: 2025-10-26 19:08:12 UTC
README
Usage
Basic
    // Controller implementation
    class StringController implements Controller {
        public function run(): ResponseInterface {
            ...
        }
    }
    ...
    // Router configuration
    $router = new Router();
    $router->configurePath(Router::METHOD_GET, '/profiles/(?<uuid>[0-9a-f\-]{36})', StringController::class);
    $router->configurePath(Router::METHOD_GET, '/profiles/(?<id>\d+)', IntegerController::class);
    ...
    // Request handling
    $router_result = $router->processRequest($server_request);
    if ($router_result !== null) {
        $controller_name = $router_result->getControllerName();
        $path_result = $router_result->getPathResult();
        $query_result = $router_result->getQueryResult();
        $controller = new $controller_name({dependencies});
        $psr7_response = $controller->buildResponse();
    }
    ... 
This package comes with PSR-15 RouterMiddleware