PHP code example of devlibs / routing
1. Go to this page and download the library: Download devlibs/routing 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/ */
devlibs / routing example snippets
use DevLibs\Routing\Router;
// create an router instance
$settings = [
'middlewares' => [
'DebugMiddleware',
],
];
$router = new Router($settings);
Router::handle($method, $path, $handler, $settings = null);
$router->get('/', 'handler');
$router->handle('GET|POST', '/users', 'handler');
$router->handle(['GET', 'POST'], '/merchants', 'handler');
$router->get('/users/<username>', 'handler');
$router->get('/orders/<order_id:\d+>', 'handler');
Router::dispatch($method, $path);
$path = '/users/baz';
$route = $router->dispatch(Router::METHOD_GET, $path);
if (is_null($route)) {
throw new \Exception('404 Not Found');
}
// handle requset
$handler = $route->handler(); // 'handler'
$params = $route->params(); // ['username' => 'baz']
$settings = $route->settings(); // $settings
Router::$routeClassName = 'namespace\MyRoute';
Router::group($prefix, array $settings = []);
// grouping
$v1Settings = [
'version' => '1',
'middlewares' => [
'AuthMiddleware',
],
];
$v1 = $router->group('v1', $v1Settings);
$v1->get('/hello', 'hello');
$route = $router->dispatch(Router::METHOD_GET, '/v1/hello'); // matched
/**
* [
* 'version' => '1',
* 'middlewares' => [
* 'DebugMiddleware',
* 'AuthMiddleware',
* ],
* ];
*/
var_dump($route->settings());
// nested group
$v1Users = $v1->group('users');
$v1Users->get('/', 'users');
$v1Users->get('/<name>', 'user profile');
$route = $router->dispatch(Router::METHOD_GET, '/v1/users'); // matched
$route = $router->dispatch(Router::METHOD_GET, '/v1/users/bar'); // matched
$router->get('/products', 'products');
$router->post('/products', 'create product');
$router->get('/products/<product_id:\d+>', 'product detail');
$router->put('/products/<product_id:\d+>', 'update product');
$router->delete('/products/<product_id:\d+>', 'delete product');
Route::getAllowMethods($path, $methods = null);
$allowMethods = $router->getAllowMethods('/merchants'); // ['GET', 'POST']