1. Go to this page and download the library: Download wilaak/radix-router library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
wilaak / radix-router example snippets
use Wilaak\Http\RadixRouter;
// Create a new router instance
$router = new RadixRouter();
// Register a route with an optional parameter and a handler
$router->add('GET', '/:world?', function ($world = 'World') {
echo "Hello, $world!";
});
// Get the HTTP method and path from the request
$method = strtoupper(
$_SERVER['REQUEST_METHOD']
);
$path = rawurldecode(
strtok($_SERVER['REQUEST_URI'], '?')
);
// Look up the route for the current request
$result = $router->lookup($method, $path);
switch ($result['code']) {
case 200:
// Route matched: call the handler with parameters
$result['handler'](...$result['params']);
break;
case 404:
// No matching route found
http_response_code(404);
echo '404 Not Found';
break;
case 405:
// Method not allowed for this route
header('Allow: ' . implode(', ', $result['allowed_methods']));
http_response_code(405);
echo '405 Method Not Allowed';
break;
}
// Static route for a single method
$router->add('GET', '/about', 'handler');
// Static route for both GET and POST methods
$router->add(['GET', 'POST'], '/form', 'handler');
// Required parameter
$router->add('GET', '/users/:id', 'handler');
// Example requests:
// /users/123 -> matches '/users/:id' (captures "123")
// /users -> no-match
// Optional parameter (must be in the last trailing segment(s))
$router->add('GET', '/hello/:name?', 'handler');
// Example requests:
// /hello -> matches
// /hello/alice -> matches (captures "alice")
// Multiple trailing optional parameters (must be at the end)
$router->add('GET', '/archive/:year?/:month?', 'handler');
// Example requests:
// /archive -> matches
// /archive/2024 -> matches (captures "2024")
// /archive/2024/06 -> matches (captures "2024", "06")
// Wildcard parameter (only allowed as last segment)
$router->add('GET', '/files/:path*', 'handler');
// Example requests:
// /files -> matches (captures "")
// /files/readme.txt -> matches (captures "readme.txt")
// /files/images/photo.jpg -> matches (captures "images/photo.jpg")
$cacheFile = __DIR__ . '/routes.cache.php';
if (!file_exists($cacheFile)) {
// Build routes here
$router->add('GET', '/', 'handler');
// Export generated tree and static routes
$routes = [
'tree' => $router->tree,
'static' => $router->static,
];
file_put_contents($cacheFile, ' return ' . var_export($routes, true) . ';');
} else {
// Load tree and static routes from cache
$routes =
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.