تکنولوژی نوین اینترنتی
در لاراول، Middleware به شما این امکان را میدهد که فرآیند درخواستها و پاسخها رو کنترل کنید. این ابزار معمولاً برای انجام کارهایی مثل احراز هویت (Authentication)، کنترل دسترسی (Authorization)، ثبت لاگها، یا تغییرات در دادههای ورودی و خروجی استفاده میشود.
استفاده در چرخه درخواست: Middleware قبل از رسیدن درخواست به کنترلر، یا پس از ارسال پاسخ از کنترلر به کاربر اجرا میشود.
قابلیت ترکیب چند Middleware: میتوانید چند Middleware را به ترتیب در مسیرهای مختلف اعمال کنید.
اعمال به گروهها و مسیرهای خاص: شما میتوانید Middleware را به گروههایی از مسیرها یا یک مسیر خاص اختصاص دهید.
سازگاری با درخواستهای AJAX و سنتی: Middleware میتواند بر روی همه نوع درخواستها (مثل POST، GET، AJAX) اعمال شود.
خطایابی دقیقتر: امکان ایجاد Middleware برای کنترل دقیق بر روند درخواست و پاسخ وجود دارد.
برای ایجاد یک Middleware جدید، ابتدا دستور زیر را اجرا میکنید:
سپس در کنترلر یا مسیر خاص خود آن را اعمال میکنید:
انعطافپذیری بالا: میتوانید برای هر درخواست، وضعیت خاصی را اعمال کنید.
پشتیبانی از گروههای مختلف: میتوانید Middleware را به گروههایی از مسیرها اختصاص دهید.
سازگاری با لاراول: Middlewareها بخش اصلی معماری لاراول هستند و در اکوسیستم لاراول بهخوبی عمل میکنند.
Request Filters در نسخههای قدیمیتر لاراول (قبل از لاراول 5) مورد استفاده قرار میگرفتند و در حقیقت مشابه با Middlewareها هستند. اما بهدلیل تغییرات معماری در لاراول، از نسخه 5 به بعد استفاده از Request Filters کنار گذاشته شد و جای خود را به Middleware داد. در واقع، Filters تنها در نسخههای قدیمی لاراول کاربرد داشتند و در نسخههای جدیدتر لاراول (۵ و بالاتر) دیگر بهطور رسمی استفاده نمیشوند.
قبل از لاراول 5: Request Filters برای انجام کارهایی مانند احراز هویت، اعتبارسنجی، و یا سایر پردازشهای پیش از رسیدن درخواست به کنترلر استفاده میشد.
در لاراول 5 و بالاتر: بهطور کلی این ویژگی به Middleware تبدیل شده و دیگر نیازی به استفاده از Filters نیست.
اعمال در فیلترهای گلوبال: فیلترها معمولاً بهطور گلوبال برای درخواستهای HTTP اعمال میشدند.
قبل از نسخه 5، برای ایجاد یک فیلتر جدید، شما از دستور زیر استفاده میکردید:
سپس فیلتر را به مسیرها یا گروههای خاص اعمال میکردید:
سادگی در استفاده: برای عملیاتهای ساده و معمولاً گلوبال، Filters میتوانست مفید باشد.
ساختار سادهتر: نسبت به Middleware، ساختار Filters سادهتر بود و به راحتی میتوانستید آنها را برای مسیرهای خاص استفاده کنید.
| ویژگی | Middleware | Request Filters (قبل از لاراول 5) |
|---|---|---|
| نسخههای لاراول | لاراول 5 به بعد | لاراول 4 و نسخههای قدیمیتر |
| چگونگی اعمال | به مسیرها، گروهها یا درخواستهای خاص اعمال میشود | به درخواستها یا مسیرهای خاص اعمال میشد |
| سازگاری | سازگاری با نسخههای جدید لاراول (5 و بالاتر) | فقط در نسخههای قدیمیتر لاراول (قبل از 5) |
| پشتیبانی از چند مسیر | بله، میتوان چند Middleware را به یک مسیر یا گروه اعمال کرد | محدود به یک مسیر یا گروه خاص بود |
| انعطافپذیری | بیشتر، میتوان فرآیندهای پیچیدهتری را اعمال کرد | کمتر و محدودتر از Middleware |
| دسترسی به درخواست و پاسخ | میتوان به راحتی از درخواست و پاسخ استفاده کرد | دسترسی مشابه به درخواست و پاسخ، اما بهطور کلی در معماری لاراول جدید از آن استفاده نمیشود |
Middleware در لاراول بهطور رسمی ابزار اصلی برای مدیریت درخواستها و پاسخها است و از نسخه 5 به بعد بهجای Request Filters استفاده میشود. Middleware انعطافپذیری بیشتری دارد و امکان اعمال آن به مسیرها، گروهها یا درخواستهای خاص فراهم است.
Request Filters در نسخههای قدیمی لاراول استفاده میشدند، اما از نسخه 5 به بعد با Middleware جایگزین شدهاند و در معماری جدید لاراول جایی ندارند.
اگر شما در حال استفاده از لاراول نسخه 5 یا بالاتر هستید، توصیه میشود که از Middleware استفاده کنید.