awesome-packages / awesome-routes
A awesome library for handling routes
v2.0.1
2021-06-08 14:57 UTC
Requires
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^8
README
How to install
To install the package use the command below
composer require awesome-packages/awesome-routes
How to use
The library uses the RESTFUL API concept , example:
<?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();
If you send a request of type GET to route /user, the index method of the UserController class will be called.
If you send a request of type GET to route /user/1, the id will be passed as a parameter to the show method.
In the case of the POST request for route /user, all attributes that you pass in the body of the request will be sent as a parameter to the create method.
As well as for other methods. An example of a controller:
<?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; } }
There is also the resource method that creates the routes according to the table below.
<?php $router = new \AwesomePackages\AwesomeRoutes\Router(); $router->resource('/user', new \Mocks\UserController()); $router->handleRequest();
License
MIT © AwesomeRoutes