awesome-packages / awesome-routes
一个处理路由的强大库
v2.0.1
2021-06-08 14:57 UTC
Requires
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^8
README
如何安装
使用以下命令安装包:
composer require awesome-packages/awesome-routes
如何使用
该库使用RESTFUL API概念,例如
<?php $router = new \AwesomePackages\AwesomeRoutes\Router(); $router->get('/user', new \Mocks\UserController(), 'index'); $router->get('/user/:id', new \Mocks\UserController(), 'show'); $router->post('/user', new \Mocks\UserController(), 'create'); $router->put('/user/:id', new \Mocks\UserController(), 'update'); $router->delete('/user/:id', new \Mocks\UserController(), 'destroy'); $router->handleRequest();
如果你向路由/user发送类型为GET的请求,则将调用UserController类的index方法。
如果你向路由/user/1发送类型为GET的请求,则将id作为参数传递给show方法。
对于路由/user的POST请求,你将在请求体中传递的所有属性将作为参数传递给create方法。
以及其他方法。以下是一个控制器示例
<?php use AwesomePackages\AwesomeRoutes\Core\Controller; use AwesomePackages\AwesomeRoutes\Core\Request; use AwesomePackages\AwesomeRoutes\Core\Response; use AwesomePackages\AwesomeRoutes\Enum\StatusCode; class UserController implements Controller { public function index(Request $request,Response $response) : Response { $response->setBody([ ['name' => 'Rhuan Gabriel', 'age' => 23], ['name' => 'Eloah Hadassa', 'age' => 13] ]); $response->setStatusCode(StatusCode::SUCCESS); return $response; } public function show(Request $request,Response $response) : Response { $id = $request->id; $response->setBody([ 'name' => 'Rhuan Gabriel', 'age' => 23 ]); $response->setStatusCode(StatusCode::SUCCESS); return $response; } public function create(Request $request,Response $response) : Response { $id = $request->id; $body = $request->body; $response->setBody([ 'message' => 'User was created' ]); $response->setStatusCode(StatusCode::CREATED); return $response; } public function update(Request $request,Response $response) : Response { $id = $request->id; $body = $request->body; $response->setBody([ 'message' => 'User has been updated' ]); $response->setStatusCode(StatusCode::SUCCESS); return $response; } public function destroy(Request $request,Response $response) : Response { $id = $request->id; $response->setBody([ 'message' => 'User has been deleted' ]); $response->setStatusCode(StatusCode::SUCCESS); return $response; } }
还有一个resource方法,它根据以下表创建路由。
<?php $router = new \AwesomePackages\AwesomeRoutes\Router(); $router->resource('/user', new \Mocks\UserController()); $router->handleRequest();
许可证
MIT © AwesomeRoutes