A simple Implicit Implicit Router/ Controller Router for Laravel whose version >= 5.2 ( 5.5 tested )
CREDIT TO dingo/api and laravel framework
(exemple tested working well in Laravel 5.5 / should be the same in Laravel 5.2 5.3 5.4 )
From Laravel 5.2, the feature implicit controller routing has been removed.
But some projects have thousands of routing rules to declare.
-
run command:
composer require jetwaves/laravel-implicit-router
-
in your api.php or web.php in routes, add this following lines (1).
<?php $api = app('Jetwaves\LaravelImplicitRouter\Router'); $api->controller('URI_PREFIX', 'App\Http\Controllers\TestController');
-
in your App/Http/Controllers/TestController.php, add a function like
<?php public function getShowMeTheMoney(Request $req){ return '10000 gold'; }
-
then we can access this controller by http://hostname/URI_PREFIX/show-me-the-money and get the following response in your browser. Just like the implicit controller routing of Laravel 5.1 at old time.
10000 gold
-
All Http method keywords are allowed to be the prefix of Camel Type function name to serve correspondent http methods.
-
When function does not exists, you'll get a 404 of laravel itself.
-
Declare explicit routes in the original way. (nothing changed)
code snippet (1) could be used in a closure of middlewares.
Route::middleware(['test'])->group(function () {
$api = app('Jetwaves\LaravelImplicitRouter\Router');
$api->controller('URI_PREFIX', 'App\Http\Controllers\TestController');
});
when the 'test' middleware do
echo 'starcraft tricks :'
and you access http://hostname/URI_PREFIX/show-me-the-money, you'il get
starcraft tricks : 10000 gold
in browser.
- Support some frequently used 'native' middleware declarations, in the line of route declaration.
- Beautify the php source code and this readme file.
- Make it functional for lumen.
- Show me your stars 8-D .