آموزش middleware در لاراول (به زبان ساده)

رتبه: 0 ار 0 رای sssss
رابطه میدلور
نویسنده: میلاد حیدری زمان مطالعه 3 دقیقه
Banner Image

middleware لاراول مکانیزمی است که گردش کار بین درخواست و پاسخ را کنترل می کند. وقتی درخواستی ارسال می شود، middleware آن را شناسایی و پردازش می کند. با توجه به نتیجه پاسخ مناسبی به درخواست ارائه می دهد.

به عنوان مثال هنگامی که کاربر درخواست بارگذاری تصویر را ارسال می کند، یک middleware بررسی می کند که آیا کاربر احراز هویت شده است یا خیر. اگر کاربر احراز هویت شده باشد، middleware تصاویر را بارگذاری می کند در غیر این صورت کاربر را به صفحه ورود هدایت می کند.

ایجاد و تعریف Middleware

طبق معمول در لاراول، می توانید با اجرای دستور زیر، middleware ایجاد کنید

php artisan make:middleware<middleware_name>

در دستور بالا باید middleware-name را با نامی که می خواهید بر روی middleware خود بگذارید جایگزین کنید.

به عنوان مثال برای ایجاد middleware که نام آن AgeMiddleware است، باید دستور زیر را اجرا کنید

php artisan make:middleware AgeMiddleware

middleware ایجاد شده را می توانید در دایرکتوری app/Http/Middleware مشاهده کنید.

روش ارسال ایمیل در لاراول

ثبت Middleware

برای استفاده موثر از middleware ها​​، باید آن ها را در laravel ثبت کنید.

دو نوع middleware در لاراول وجود دارد،

1. Global Middleware

2. Route Middleware

1-Global Middleware

همانطور که از نامش پیداست، Global Middleware در طول هر درخواست HTTP ، کل برنامه لاراول اجرا می شود.

Global Middleware زمانی مفید است که در هر درخواست HTTP شرایط خاصی مانند شرایط احراز هویت را بررسی کنید.

یک برنامه وب حرفه ای باید اصالت کاربر را در طول هر فعالیت برای اهداف امنیتی بررسی کند.

در اینجا Global Middleware به ما کمک می کند تا وظایف خود را انجام دهیم. می توانیم Middleware را در فایل “app/Http/Kernel.php” ثبت کنیم.

این فایل شامل دو ویژگی middleware$ و routeMiddleware$ است. Global Middleware در آرایه middleware$ ثبت شده است.

از ویژگی routeMiddleware$ برای ثبت Middleware های خاص مسیر استفاده می شود.

طبق خطوط زیر می توانید Global Middleware را تعریف کنید:

protected $middleware = [

IlluminateFoundationHttpMiddlewareCheckForMaintenanceMode::class,

AppHttpMiddlewareEncryptCookies::class,

IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class,

IlluminateSessionMiddlewareStartSession::class,

IlluminateViewMiddlewareShareErrorsFromSession::class,

AppHttpMiddlewareVerifyCsrfToken::class,

];

2-Route Middleware

ما می توانیم route middleware را به هر مسیر خاصی اختصاص دهیم.

شما باید middleware را با یک کلید به فایل /app/Http/Kernel.php خود اضافه کنید. به چنین middleware هایی route middleware گفته می شود.

با قطعه کد زیر می توانید route middleware را به همراه کلید آن ثبت کرده یا بنویسید:

protected $routeMiddleware = [

‘auth’ => AppHttpMiddlewareAuthenticate::class,

‘auth.basic’ => IlluminateAuthMiddlewareAuthenticateWithBasicAuth::class,

‘guest’ => AppHttpMiddlewareRedirectIfAuthenticated::class,

‘userUploadImage’ => IlluminateRoutingMiddlewareuserUploadImage::class,

];

در کد بالا، route middleware را با کلیدی مانند “userUploadImage” اضافه کرده ایم.

Middleware با پارامترها

می توانیم پارامترها را به همراه middleware تعریف کنیم.

به عنوان مثال اگر برنامه شما دارای نقش های متفاوتی مانند کاربر، ادمین، سوپر ادمین و غیره باشد و بخواهید عمل را بر اساس نقش، احراز هویت کنید این امر با ارسال پارامترها با middleware به دست می آید. middleware ایجاد شده شامل تابع زیر است و می توانیم آرگومان سفارشی خود را بعد از آرگومان next$ منتقل کنیم.

public function handle($request, Closure $next) {

return $next($request);

}

Terminable Middleware

این ها انواع خاصی از middleware ها هستند که بلافاصله پس از ارسال هرگونه پاسخی به مرورگر شروع به کار می کنند. متد terminate برای دستیابی به این هدف استفاده می شود. وقتی از یک متد terminate در middleware پروژه شما استفاده می شود، پس از ارسال پاسخ مرورگر، به طور خودکار فراخوانی می شود.

<?php

namespace IlluminateSessionMiddleware;

use Closure;

class SessionBegin

{

public function handle($request, Closure $next)

{

return $next($request);

}

public function terminate($request, $response)

{

// thing to do while terminating the middleware

}

}

حتما دانلود کنید: آموزش صفر تا صد لاراول (رایگان)

برچسب : لاراول
profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

کلاس های آنلاین مرتبط

مشاهده همه
سایر مقالات آموزشی
سایر مقالات آموزشی

مدرس : حامد رضوانی

0

*برای مشاهده قیمت کلاس روی رزرو کلاس آنلاین کلیک کنید*

رزرو کلاس آنلاین

دیدگاهتان را بنویسید

1 2 3 4 5

0 نظر درباره «آموزش middleware در لاراول (به زبان ساده)»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید