2017 © Pedro Peláez
 

library laravel-autoroute

Laravel routes helper

image

eightyfive/laravel-autoroute

Laravel routes helper

  • Wednesday, February 14, 2018
  • by eightyfive
  • Repository
  • 1 Watchers
  • 3 Stars
  • 2,391 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 25 Versions
  • 20 % Grown

The README.md

laravel-autoroute

Autoroute helps you register Laravel routes as YAML., (*1)

"La route? Là où on va, on a pas besoin... De route.", (*2)

Install

composer require eyf/laravel-autoroute

Usage

<?php
// app/Providers/RouteServiceProvider.php

use Eyf\Autoroute\Autoroute;

class RouteServiceProvider extends ServiceProvider
{
    public function map(Autoroute $autoroute)
    {
        $autoroute->load(["api.yaml"]);
    }
}

Note: It will automatically look for files inside the Laravel routes/ folder., (*3)

Sample api.yaml

domain: api.example.org
prefix: v1
middleware:
    - api
namespace: App\Http\Controllers\Api
paths:
    "users":
        get:
            uses: UserController@index

        post:
            uses: UserController@store

    "users/{id}":
        get:
            uses: UserController@find

        put:
            uses: UserController@update

Or using the compact syntax:, (*4)

domain: api.example.org
prefix: v1
middleware:
    - api
namespace: App\Http\Controllers\Api
paths:
    "users":
        get: user.index
        post: user.store

    "users/{id}":
        get: user.find
        put: user.update

Template parameters

Autoroute supports light parameters in YAML files. The format is %<parameter_name>%., (*5)

For instance let's say you need to work with a local API subdomain:, (*6)

<?php
// app/Providers/RouteServiceProvider.php

use Eyf\Autoroute\Autoroute;

class RouteServiceProvider extends ServiceProvider
{
    public function map(Autoroute $autoroute)
    {
        $parameters = [
            "app_domain" => env("APP_DOMAIN", "example.org"),
        ];

        $autoroute->load(["api.yaml"], $parameters);
    }
}

And in your local .env file:, (*7)

APP_DOMAIN=localhost:8000
# APP_DOMAIN=example.org # PROD

And in your api.yaml file:, (*8)

domain: api.%app_domain%
prefix: v1
# ...

Default route names

If you don't provide an as option in your route definition:, (*9)

"users/{id}":
    get:
      uses: UserController@find
        as: my_user_find_route_name

Autoroute will generate a default route name based on the current namespace, controller and action names:, (*10)

"users/{id}":
    get:
        uses: UserController@find
        # as: api.user.find (generated)

Custom default route name

If you're not happy with the default route name format, you can implement your own Eyf\Autoroute\RouteNamerInterface and bind it accordingly in your Laravel app service provider:, (*11)

<?php
// app/Providers/AppServiceProvider.php

use Eyf\Autoroute\RouteNamerInterface;
use App\Services\MyRouteNamer;

class AppServiceProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->bind(RouteNamerInterface::class, MyRouteNamer::class);
    }
}

uses compact syntax

If you're not using any route options (as, etc...), you can use a "compact" syntax to specify your controllers:, (*12)

domain: api.%app_domain%
prefix: v1
middleware:
    - api
namespace: App\Http\Controllers\Api
paths:
    "users":
        get: user.index
        post: user.store

    "users/{id}":
        get: user.find
        put: user.update

Custom compact syntax

You can customize the shorthand syntax by implementing RouteNamerInterface::getUses(string $compact)., (*13)

The Versions

14/02 2018

dev-master

9999999-dev

Laravel routes helper

  Sources   Download

MIT None

The Requires

 

by Benoit Sagols

27/02 2017

0.4.1

0.4.1.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

27/02 2017

0.4

0.4.0.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

12/12 2016

0.3.4

0.3.4.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

07/11 2016

0.3.3

0.3.3.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

26/10 2016

0.3.1

0.3.1.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

26/10 2016

0.3.2

0.3.2.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

25/10 2016

0.3.0

0.3.0.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

21/09 2016

0.2.2

0.2.2.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

21/09 2016

0.2.1

0.2.1.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

21/09 2016

0.2.0

0.2.0.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

21/09 2016

0.1.4

0.1.4.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

02/08 2016

0.1.3

0.1.3.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

30/05 2016

0.1.1

0.1.1.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

30/05 2016

0.1.2

0.1.2.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

15/03 2016

0.1.0

0.1.0.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

15/03 2016

0.0.9

0.0.9.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

15/03 2016

0.0.8

0.0.8.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

05/02 2016

0.0.7

0.0.7.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

05/02 2016

0.0.6

0.0.6.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

01/02 2016

0.0.5

0.0.5.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

31/01 2016

0.0.4

0.0.4.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

29/01 2016

0.0.3

0.0.3.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

29/01 2016

0.0.2

0.0.2.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols

29/01 2016

0.0.1

0.0.1.0

Laravel routes helper

  Sources   Download

None

The Requires

 

by Benoit Sagols