/Lararoutes-lumen-custom-routes

Lumen package to help you custom your routes apiResources.

Primary LanguagePHP

Lumen Custom Routes

Scrutinizer Code Quality Build Status Code Intelligence Status Total Downloads

lumen-custom-routes

Lumen package to help you customize your routes. Specialize for whom using lumen,
If you don't you better do now, Lumen is stunningly micro-framework Faster 4x than laravel.

Installation

composer require lararoutes/lumen-custom-routes

Usage

Add those lines in top of routes/web.php

  use Lararoutes\Lumen\CustomRoutes;
  $app = new CustomRoutes($router);

That's it. done

Example

Instead of doing this shit

  $router->get('posts', 'PostController@index');
  $router->post('posts', 'PostController@store');
  $router->get('posts/{id}', 'PostController@show');
  $router->put('posts/{id}', 'PostController@update');
  $router->delete('posts/{id}', 'PostController@destroy');

We can simple do this now

$app->apiResource('posts', 'PostController');

However, you can also custom your routes as much as u want in Lararoutes\Lumen\CustomRoutes.php

    function apiResoruce($uri, $controller)
    {
        $this->app->get($uri, $controller.'@index');
        $this->app->post($uri, $controller.'@store');
        $this->app->get($uri.'/{id}', $controller.'@show');
        $this->app->put($uri.'/{id}', $controller.'@update');
        $this->app->delete($uri.'/{id}', $controller.'@destroy');

        // feel free to add more..

    }

Another example for what you can do else
Instead of doing this

  $router->group(['prefix' => 'auth'], function ($router) {
    $router->post('resister', 'AuthController@register');
    $router->post('login', 'AuthController@login');
    $router->post('logout', 'AuthController@logout');
    $router->post('refresh', 'AuthController@refresh');
    $router->get('me', 'AuthController@me');
  }

You can just drop one line like that

$app->authResource('auth', 'AuthController');

Just create new function authResource in Lararoutes\Lumen\CustomRoutes.php

  function authResource($uri, $controller)
    {
      $this->app->post($uri.'/register', $controller.'@register');
      $this->app->post($uri.'/login', $controller.'@login');
      $this->app->post($uri.'/logout', $controller.'@logout');
      $this->app->post($uri.'/refresh', $controller.'@refresh');
      $this->app->get($uri.'/me', $controller.'@me');
    }

You are welcome :)

Credits

License

The MIT License (MIT). Please see License File for more information.