To install the package use the command below
composer require awesome-packages/awesome-routes
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();| Request Method | Route | Controller Method |
|---|---|---|
| GET | /user | index |
| GET | /user/{id} | show |
| POST | /user | create |
| PUT | /user/{id} | update |
| DELETE | /user/{id} | destroy |
MIT © AwesomeRoutes