liamrabe / basic-router
基本路由器
v2.1.2
2022-09-17 14:28 UTC
This package is auto-updated.
Last update: 2024-09-20 04:18:35 UTC
README
基本路由器
基本安装
composer require liamrabe/basic-router
基本使用
use LiamRabe\BasicRouter\Middleware\AbstractMiddleware; use LiamRabe\BasicRouter\Controller\AbstractErrorController; use LiamRabe\BasicRouter\DataCollection\Response; use LiamRabe\BasicRouter\DataCollection\Request; use LiamRabe\BasicRouter as Router; class APIMiddleware { public static function handle() { return true; } } class AppMiddleware { public static function handle() { return true; } } function handleRoute(Request $request, Response $response): Response { $response->setHeader('Content-Type', 'text/html'); $response->setBody('Hello, world!'); $response->setStatus(200); return $response; } try { /** setErrorController & setMiddleware are required before adding routes */ Router::setErrorController(ErrorController::class, 'handleError'); Router::setMiddleware(AppMiddleware::class, 'handleRequest'); Router::redirect('/', '/home'); Router::get('/home', 'handleRoute'); Router::put('/home', 'handleRoute'); Router::post('/home', 'handleRoute'); Router::delete('/home', 'handleRoute'); Router::all('/home', 'handleRoute'); Route::group('/api', static function() { /** Added route will have URI '/api/v1/customer' */ Route::get('/v1/customers', 'handleRoute'); }, [APIMiddleware::class, 'handleRequest']); Router::run(); } catch (Exception $ex) { echo $ex->getMessage(); }
基本文档
BasicRouter 支持 GET
、PUT
、POST
和 DELETE
基本 HTTP 方法
全部
/** Use this if you want to register a route on all HTTP methods */ Router::all('/', [AbstractController::class, 'handleRoute']);
GET
Router::get('/', [AbstractController::class, 'handleRoute']);
PUT
Router::put('/', [AbstractController::class, 'handleRoute']);
POST
Router::post('/', [AbstractController::class, 'handleRoute']);
DELETE
Router::delete('/', [AbstractController::class, 'handleRoute']);
基本通用方法
重定向
/** Redirect route '/' to '/home' with response code 301 */ Router::redirect('/', '/home', 301);
正则表达式 URI
您可以直接在 URI 上定义正则表达式
格式: {[参数名]:[正则表达式模式]}
示例:
/** Regex on route doesn't need parenthesis will be applied at runtime */ Router::get('/api/customers/{customer_id:[a-zA-Z0-9]+}', 'handleRoute');