| Recommend this page to a friend! |
| Info | Documentation | Reputation | Support forum | Blog | Links |
| Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
| 2026-04-07 (5 days ago) | Not yet rated by the users | Total: Not yet counted | Not yet ranked | |||||
| Version | License | PHP version | Categories | |||
| leocore-router 1.0.0 | MIT/X Consortium ... | 8 | Libraries, Web services, Language, De..., P... |
| Description | Author | ||||||||
This package can route HTTP requests to callback functions. |
|
Please read this document to learn how to configure a router class to dispatch HTTP requests to callback functions.
A lightweight, modern PHP 8.2+ routing library with pattern matching, parameter extraction, middleware support, and secure dispatching.
Via Composer:
composer require leocore/router
Or use directly (no dependencies needed):
git clone https://github.com/Rocklviv/leocore-router.git
cd leocore-router
use App\Router\Router;
use App\Router\Response;
$router = new Router();
$router->add('/health', fn() => new Response('OK - System Operational', 200));
$router->add('/users/{id}', fn(int $id) => new Response("User #{$id}", 200));
$router->add('/api/data/{id}', [DataHandler::class, 'getData'], ['GET', 'DELETE']);
$router->add('/users', fn() => new Response('Users list'), ['GET']);
$router->add('/users', fn() => new Response('Create user', 201), ['POST']);
use App\Router\Middleware\Csrf;
use App\Router\Middleware\Cors;
$router = new Router();
// Register CSRF middleware for state-changing routes
$router->add('/users', fn() => new Response('Users'), ['GET'], [
new Csrf()
]);
// Register CORS middleware
$router->add('/api/*', fn() => new Response('API'), ['GET'], [
new Cors(['origin' => 'https://example.com'])
]);
$router->add('/users/{id}', fn(int $id) => new Response("User #{$id}", 200));
// Dispatch a request
$response = $router->dispatch('GET', '/users/123');
echo $response->getContent(); // Outputs: User #123
__construct()Initialize the router.
add(string $path, callable|array|string $handler, array $methods = ['GET'], array $middleware = [])Register a new route manually.
Parameters:
- $path: Route pattern (e.g., /users/{id})
- $handler: Closure, array of [ClassName, method], or string 'ClassName::method'
- $methods: Array of HTTP methods (GET, POST, PUT, etc.)
- $middleware: Optional array of middleware instances
dispatch(string $method, string $path, ?array $headers = null): ResponseDispatch a request to the matched route.
Parameters:
- $method: HTTP method (GET, POST, PUT, DELETE, PATCH, OPTIONS)
- $path: Request path (without query string)
- $headers: Optional array of headers (for CLI/testing)
Returns: Response object
dumpRoutes(): arrayGet all registered routes for debugging.
Returns: Array of route configurations
CsrfCSRF token generation and validation middleware. Returns 403 for invalid tokens.
CorsCORS header middleware with configurable origin and methods.
MIT License - see LICENSE file for details.
| File | Role | Description | ||
|---|---|---|---|---|
| Data | Auxiliary data | |||
| Data | Auxiliary data | |||
| Lic. | License text | |||
| Data | Auxiliary data | |||
| Doc. | Documentation | |||
| / | src | / | Router |
| File | Role | Description | ||
|---|---|---|---|---|
| |
Class | Class source | ||
| |
Class | Class source | ||
| / | src | / | Router | / | Middleware |
| File | Role | Description |
|---|---|---|
| |
Class | Class source |
| |
Class | Class source |
| |
Class | Class source |
| |
Class | Class source |
| The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page. |
| Version Control | Unique User Downloads | |||||||
| 100% |
|
| Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.