بخش سوم - میدلورها - قسمت دوم
در قسمت قبل آموختیم پس از ساخت یک میدلور، باید آن را در برنامه ثبت کنیم.
برای این کار میدلور ها را در متد 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
.