With this library, you can easily add "module/controller/action" style routes for Lumen.
Suggest install it via composer:
composer require clarence/lumen-default-routes
Then, register the DefaultRouteProvider
. For lumen, please register \Clarence\LumenDefaultRoutes\DefaultRouteProvider::class
in bootstrap/app.php
.
// bootstrap/app.php
$app = new Laravel\Lumen\Application(
realpath(__DIR__.'/../')
);
//...
$app->group(['namespace' => 'App\Http\Controllers'], function ($app) {
require __DIR__.'/../app/Http/routes/main_routes.php';
});
$app->register(Clarence\LumenDefaultRoutes\DefaultRouteProvider::class); // add: register default routes below registered all your own routes
foo/bar
will be mapped to \App\Http\Controllers\FooController@doGetBar
by default.
Note:
\App\Http\Controllers\
is the namespace prefix of the controller. It can be configurated asdefault-routes.controller-prefix
.- In
FooController
,Controller
is the class name suffix. It can be configurated asdefault-routes.controller-suffix
. doGetBar
is the actual method to be executed. It isdo
+<HTTP_METHOD>
+<action>
. And it should be apublic
method. Otherwise a404
or405
HTTP error will be thrown.- If
\App\Http\Controllers\FooController@doGetBar
cannot be found,\App\Http\Controllers\Foo\BarController@doGetIndex
will be tried.