Автомаршруты для Laravel — это пакет İzni Burak Demirtaş, который генерирует маршруты из контроллера с помощью автоматического обнаружения. Он работает путем обнаружения методов public
в контроллере и создания для них маршрутов:
// routes/web.php
Route::auto('/test', TestController::class);
//
// Controller example
//
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
/**
* URL: "/test" - main method
*/
public function index(Request $request)
{
// controller code
}
/**
* URL: "/test/foo-bar"
* This method will only work with 'GET' method.
*/
public function getFooBar(Request $request)
{
// controller code
}
/**
* URL: "/test/foo_bar"
* This method will only work with 'GET' method.
*/
public function get_foo_bar(Request $request)
{
// controller code
}
/**
* URL: "/test/bar-baz"
* This method will only work with 'POST' method.
*/
public function postBarBaz(Request $request)
{
// controller code
}
}
route
метод также принимает третий аргумент для настройки параметров и промежуточного программного обеспечения:
Route::auto('/test', TestController::class, [
'name' => 'test',
'middleware' => [YourMiddleware::class],
// Parameters become available to methods
'patterns' => [
'id' => '\d+',
'value' => '\w+',
],
]);
// Limit the methods that will define routes
Route::auto('/foo', 'FooController', [
'only' => ['fooBar', 'postUpdatePost'],
]);
Хотя большинство разработчиков довольны встроенными определениями маршрутизации Laravel (маршрутизация Laravel настолько хороша в моем скромном варианте ), это уникальная идея с примерами в исходном коде работы с PHP Reflection API и маршрутизатором Laravel.Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть исходный код на GitHub.