TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 611 subscribers
Post #280 295
فصل یک - Routing

بخش سوم - میدلورها - قسمت دوم


در قسمت قبل آموختیم پس از ساخت یک میدلور، باید آن را در برنامه ثبت کنیم.
برای این کار میدلور ها را در متد withMiddleware در فایل bootstrap/app.php ثبت می کردیم:
->withMiddleware(function (Middleware $middleware) {
// $middleware->
})

متد های مختلفی از متغیر $middleware برای ثبت میدلور ها در دسترس است که به بررسی آنها خواهیم پرداخت:

1- متد use
این متد استک سراسری میدلور ها را به صورت دستی تنظیم میکند.
->withMiddleware(function (Middleware $middleware) {
$middleware->use([
TrustHosts::class,
// ...
]);
})


2- متد append
این متد یک میدلور را به آخر لیست میدلور ها اضافه میکند.
->withMiddleware(function (Middleware $middleware) {
$middleware->append(TrustHosts::class);
})


3- متد prepend
این متد یک میدلور را به اول لیست میدلور ها اضافه میکند.
->withMiddleware(function (Middleware $middleware) {
$middleware->prepend(TrustHosts::class);
})


4- متد remove
این متد یک میدلور را از لیست میدلور ها حذف میکند.
->withMiddleware(function (Middleware $middleware) {
$middleware->remove(TrustHosts::class);
})


5- متد replace
این متد یک میدلور را جایگزین میدلور موجود در استک میدلور ها می کند.
->withMiddleware(function (Middleware $middleware) {
$middleware->replace(First::class, Second:class);
})


6- متد group
این متد یک گروه از چندین میدلور را ایجاد میکند.
->withMiddleware(function (Middleware $middleware) {
$middleware->group('my-group', [
TrustHosts::class,
StartSession::class,
// ...
]);
})

// Use
Route::get('/', function () {
// ...
})->middleware('my-group');


7- متد alias
این متد یک میدلور را با نام مستعار ثبت میکند.
->withMiddleware(function (Middleware $middleware) {
$middleware->alias([
'permission' => Permission::class,
]);
})


8- متد api
این متد یک میدلور را به گروه پیشفرض api اضافه/حذف/جایگزین میکند.
->withMiddleware(function (Middleware $middleware) {
// append middleware
$middleware->api(append: [
StartSession::class,
]);;

// prepend middleware
$middleware->api(prepend: [
StartSession::class,
]);;

// remove middleware
$middleware->api(remove: [
StartSession::class,
]);;

// replace middleware
$middleware->api(replace: [
First::class => Second::class,
]);;
})


9- متد web
این متد یک میدلور را به گروه پیشفرض web اضافه/حذف/جایگزین میکند.
->withMiddleware(function (Middleware $middleware) {
// append middleware
$middleware->web(append: [
StartSession::class,
]);;

// prepend middleware
$middleware->web(prepend: [
StartSession::class,
]);;

// remove middleware
$middleware->web(remove: [
StartSession::class,
]);;

// replace middleware
$middleware->web(replace: [
First::class => Second::class,
]);;
})


10- متد appendToGroup
این متد یک یا چند میدلور را به آخر یک گروه اضافه میکند.
->withMiddleware(function (Middleware $middleware) {
$middleware->appendToGroup('group-name', [
StartSession::class,
]);
})


11- متد prependToGroup
این متد یک یا چند میدلور را به اول یک گروه اضافه میکند.
->withMiddleware(function (Middleware $middleware) {
$middleware->prependToGroup('group-name', [
StartSession::class,
]);
})



12- متد removeFromGroup
این متد یک یا چند میدلور را از یک گروه حذف میکند.
->withMiddleware(function (Middleware $middleware) {
$middleware->removeFromGroup('group-name', [
StartSession::class,
]);
})


13- متد replaceInGroup
این متد یک میدلور را با میدلور دیگری در یک گروه جایگزین میکند.
->withMiddleware(function (Middleware $middleware) {
$middleware->replaceInGroup('group-name', First::class, Second::class);
})


14- متد priority
این متد اجرای میدلور ها را الویت بندی میکند.
->withMiddleware(function (Middleware $middleware) {
$middleware->priority([
First::class,
Second::class,
Third::class,
]);
})


#laravel #فصل_۱
@AmirhDeveloper
.
  • 👍 1
  • 🔥 1
More from @amirhdeveloper
  1. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  2. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  3. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  4. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
  5. Sep 19, 2026🟢 سوال اول فرض کنید یک سرویس backend داریم که به PostgreSQL وصل می‌شود. تعداد requestها ن…
  6. Sep 19, 2026خیلی وقته پست‌های کانال فقط درمورد LaraGram بوده، وقتشه یکم جالب‌ترش کنیم اگر ممبرها هنوز…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →