• Час читання ~1 хв
  • 24.08.2022

Автоматичні маршрути для Laravel є пакетом від İzni Burak Demirtaş, який генерує маршрути з контролера за допомогою автоматичного виявлення. Він працює, виявляючи публічні методи на контролері та генеруючи маршрути для них:

// 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 настільки хороша в моєму скромному варіанті ), це унікальна ідея з прикладами у вихідному коді роботи з API відображення PHP і маршрутизатором 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