awesome-packages/awesome-routes

A awesome library for handling routes

v2.0.1 2021-06-08 14:57 UTC

This package is auto-updated.

Last update: 2024-09-08 21:49:31 UTC


README

awesome-routes

Total Downloads Size codecov.io CodeFactor travis-ci Issues Pull Request's Gitmoji

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