Middleware گروهی در لاراول ۱۱

laravel 11 middleware group
22 اردیبهشت 1404

درک Middleware در لاراول ۱۱


وقتی صحبت از توسعه وب به میان می‌آید، یکی از مسائلی که بسیار مهم است، مدیریت درخواست‌ها و کنترل اینکه چه کارهایی بر روی درخواست‌های ورودی انجام شود، است. لاراول یکی از فریمورک‌های محبوب PHP است که امکانات عالی برای مدیریت Middleware‌ها دارد. Middlewareها به ما این امکان را می‌دهند که بتوانیم بر روی درخواست‌ها و پاسخ‌ها کار انجام دهیم، از جمله مسائلی مانند احراز هویت، کنترل دسترسی و غیره.


در لاراول ۱۱، توابعی فراهم شده‌اند که با استفاده از آنها می‌توانیم گروهی از Middlewareها را به یک مسیر خاص یا گروهی از مسیرها اضافه کنیم. به‌طوری‌که به سادگی می‌توانید تنظیمات مختلف را برای گروهی از روترها مدیریت کنید. ما می‌توانیم به‌راحتی این کار را با استفاده از متد group() انجام دهیم.


وقتی از Middleware::group() استفاده می‌کنید، می‌توانید گروهی از Middleware‌ها را تعریف کنید و مدیریت کنید. این روش برای زمان‌هایی مناسب است که شما چندین Middleware مشابه دارید و می‌خواهید به سرعت آنها را به یک یا چند مسیر اضافه کنید. این ویژگی به شما کمک می‌کند تا کدهای خود را مرتب‌تر و منطقی‌تر نگه دارید.


حال بیایید با هم نگاهی به یک مثال عملی بیندازیم. در این مثال، ما یک گروه از Middlewareها را برای مسیری در برنامه‌یمان تعریف خواهیم کرد. امیدوارم این توضیحات به شما در درک بهتر Middleware‌ها کمک کند!


کد نمونه برای Middleware::group()


use Illuminate\Support\Facades\Route;
use App\Http\Middleware\CheckAge;

// تعریف گروه Middleware
Route::middleware([CheckAge::class])->group(function () {
Route::get('/profile', function () {
// منطق نمایش پروفایل کاربر
});

Route::get('/settings', function () {
// منطق نمایش تنظیمات کاربر
});
});

توضیح خط به خط کد


use Illuminate\Support\Facades\Route;
این خط کتابخانه ضروری Route لاراول را وارد می‌کند تا بتوانیم با استفاده از آن مسیرها را تعریف کنیم.


use App\Http\Middleware\CheckAge;
با این خط، ما Middleware خود را که به نام CheckAge تعریف کرده‌ایم وارد می‌کنیم. این Middleware می‌تواند هر نوع منطق احراز هویت یا بررسی دیگری را انجام دهد.


Route::middleware([CheckAge::class])->group(function () {...});
در این قسمت، ما یک گروه از مسیرها تعریف می‌کنیم که به Middleware CheckAge متصل می‌شود. با استفاده از group() می‌توانیم به راحتی چندین مسیر را با یک Middleware مشترک مدیریت کنیم.


در درون group()، ما چندین مسیر برای /profile و /settings تعریف کرده‌ایم که به ترتیب منطق نمایش پروفایل و تنظیمات کاربر را پیاده‌سازی می‌کنند.


سوالات متداول

؟

Middleware چیست؟

؟

چگونه می‌توان چندین Middleware را به یک مسیر اضافه کرد؟

؟

چرا از group() استفاده کنیم؟