فهم Middleware في Laravel: كيفية استخدامها وإنشاء Middleware مخصصة

Amine
30/08/2024

المقدمة

الوسائط (Middleware) في Laravel هي طبقات منطقية تستخدم لفحص وتعديل الطلبات HTTP التي تدخل إلى التطبيق. تُستخدم الوسائط لتنفيذ مهام متعددة مثل المصادقة، تسجيل الدخول، والتحقق من الأذونات قبل معالجة الطلبات من قِبَل المتحكمات (Controllers). في هذا الدليل، سنتعلم كيفية استخدام الوسائط الافتراضية المتاحة في Laravel وكيفية إنشاء وسائط مخصصة لتلبية احتياجات تطبيقك.

ما هي الوسائط في Laravel؟

الوسائط هي آلية لتصفية الطلبات HTTP والتحكم فيها قبل وصولها إلى التطبيق أو بعد معالجة التطبيق للطلبات. يمكن استخدامها لمهام متنوعة، بما في ذلك:

  • التحقق من المصادقة قبل السماح بالوصول إلى أجزاء معينة من التطبيق.
  • التعامل مع الصلاحيات والتأكد من أن المستخدمين لديهم الأذونات اللازمة.
  • تسجيل الطلبات أو أداء بعض التحليلات.

الخطوة 1: استخدام الوسائط الافتراضية في Laravel

Laravel يأتي مع مجموعة من الوسائط الافتراضية مثل auth وguest. لتطبيق وسيطة على مسار (Route)، يمكنك استخدام الطريقة التالية في ملف routes/web.php:

Route::get('/dashboard', function () {
    // لوحة التحكم
})->middleware('auth');

ستتحقق الوسيطة auth من أن المستخدم مسجل دخول قبل السماح له بالوصول إلى المسار /dashboard.

الخطوة 2: إنشاء وسيطة مخصصة

لإنشاء وسيطة مخصصة، استخدم أداة سطر الأوامر Artisan في Laravel. افتح سطر الأوامر في مجلد مشروع Laravel واستخدم الأمر التالي:

php artisan make:middleware CheckAge

سيقوم هذا بإنشاء ملف جديد في مجلد app/Http/Middleware يُسمى CheckAge.php.

الخطوة 3: كتابة منطق الوسيطة المخصصة

افتح الملف CheckAge.php وأضف منطق الوسيطة للتحقق من عمر المستخدم:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class CheckAge
{
    public function handle(Request $request, Closure $next)
    {
        if ($request->age < 18) {
            return redirect('home');
        }

        return $next($request);
    }
}

ستتحقق هذه الوسيطة من عمر المستخدم وتعيد توجيهه إلى الصفحة الرئيسية إذا كان عمره أقل من 18 عامًا.

الخطوة 4: تسجيل الوسيطة المخصصة

بعد إنشاء الوسيطة، تحتاج إلى تسجيلها في التطبيق. افتح ملف app/Http/Kernel.php وأضف الوسيطة إلى المصفوفة $routeMiddleware:

protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'checkage' => \App\Http\Middleware\CheckAge::class,
    // المزيد من الوسائط...
];

الآن يمكنك استخدام الوسيطة المخصصة checkage في تعريفات المسارات.

الخطوة 5: تطبيق الوسيطة المخصصة على المسارات

يمكنك الآن تطبيق الوسيطة المخصصة على مسارات معينة. افتح ملف routes/web.php وأضف الوسيطة إلى المسار المطلوب:

Route::get('/profile', function () {
    // ملف التعريف
})->middleware('checkage');

سيتم الآن فحص عمر المستخدم قبل الوصول إلى المسار /profile.

الخاتمة

الوسائط في Laravel توفر طريقة فعالة لإدارة الطلبات HTTP والتحكم في الوصول إلى أجزاء معينة من التطبيق. من خلال استخدام الوسائط الافتراضية أو إنشاء وسائط مخصصة، يمكنك تعزيز أمان التطبيق وتحسين تجربة المستخدم. استمر في استكشاف المزيد من الميزات المتقدمة في Laravel لتحسين تطبيقاتك.

لمزيد من المعلومات، يمكنك زيارة المستندات الرسمية للارافيل.

التعليقات

اترك تعليقاً