• Время чтения ~1 мин
  • 24.08.2022

Автомаршруты для 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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297