در نگارش 5 از فریمورک لاراول مفهوم جدیدی به نام Middleware ایجاد شده است. در نگارش 4 لاراول مفهومی مشابه به نام فیلتر وجود داشت که عملکردی مشابه با Middleware ها در اختیار برنامهنویسان قرار میداد.
برای بهبود شیوههای برنامهنویسی همین طور افزایش کارایی و توسعهپذیری، سیستم جدید Middleware جایگزین فیلترها گردید.
عملکرد Middleware قرار گرفتن در مسیر اجرای درخواستهای رسیده به فریمورک است. Middlewareها میتوانند درخواستهای دریافت شده را بررسی کنند و در صورت نیاز اطلاعاتی به آنها بیفزایند، آنها را تغییر دهند یا به طور کلی مسیر اجرا را متوقف و مسیر دیگری هدایت کنند.
پرکاربردترین Middleware که در هستهی لاراول تعبیه شده است، سیستمی برای بررسی ورود کاربر به برنامه است. به این معنی که با اجرای این Middleware در مسیر اجرای تمامی درخواستها، چنانچه کاربر درخواست دهنده، وارد سایت نشده باشد، اجازهی دسترسی به صفحات داخلی به وی داده نمیشود و در عوض به صفحهی ورود هدایت میشود.
علاوه بر چند Middleware از پیش طراحی شده در لاراول، امکان ایجاد Middlewareهای جدید توسط برنامهنویس نیز وجود دارد. همچنین زمان اجرای این واسطها میتواند به صورت کلی روی گروهی از مسیرها( Route )ها یا به صورت خاص روی برخی از مسیرها یا به صورت کلی روی تمام مسیرها باشد.
برای ایجاد یک Middleware جدید از دستور زیر استفاده میکنیم:
php artisan make:middleware AgeMiddleware
Middlewareهای ایجاد شده میتوانند پیش از اجرای مسیر یا پس از آن فرآیندهای خود را به انجام برسانند. همچنین امکان پیوست کردن چندین Middleware به صورت زنجیرهای وجود دارد.
برای اجرای یک Middleware روی تمامی مسیرها میبایست فایل زیر ویرایش شود و نام واسط مورد نظر در آن مانند نمونههای موجود به آن افزوده شود.
app/Http/Kernel.php
برای استفاده از Middleware روی مسیرهای خاص یا گروههای خاصی از مسیرها ابتدا میبایست فایل بالا ویرایش شود و برای Middleware جدید نامی مشخص شود.
پس از تعیین نام، به صورت زیر عمل میکنیم:
Route::get('admin/profile', ['middleware' => 'auth', function () { // }]);