حماية المسارات باستخدام Middleware
استخدموا middleware الخاص بـ auth وguest لتأمين المسارات وإعادة توجيه المستخدمين
حماية المسارات باستخدام Middleware درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
ما هي Middleware؟
Middleware هي شيفرة تُنفّذ قبل وصول طلب HTTP إلى وحدة التحكم أو بعده. تُستخدم للمصادقة، والتسجيل، وCORS، وتحديد معدل الطلبات، وغير ذلك.
Middleware المضمّنة للمصادقة
تُعيد Middleware المسماة auth توجيه المستخدمين غير المصادق عليهم إلى صفحة تسجيل الدخول (أو تُعيد الحالة 401 لطلبات API).
<?php
Route::get("/dashboard", [DashboardController::class, "index"])
->middleware("auth");تطبيق Middleware على المجموعات
يمكنك حماية مجموعة كاملة من المسارات دفعةً واحدة.
<?php
Route::middleware(["auth", "verified"])->group(function () {
Route::get("/dashboard", [DashboardController::class, "index"]);
Route::get("/profile", [ProfileController::class, "show"]);
});Middleware المسماة guest
تُعيد Middleware المسماة guest توجيه المستخدمين الذين تمت مصادقتهم بعيدًا عن صفحات تسجيل الدخول والتسجيل.
<?php
Route::middleware("guest")->group(function () {
Route::get("/login", [LoginController::class, "create"]);
Route::get("/register", [RegisterController::class, "create"]);
});إنشاء Middleware مخصصة
أنشئها باستخدام Artisan ونفّذ الطريقة handle().
$ php artisan make:middleware EnsureSubscribedمنطق Middleware المخصصة
أعِد الطلب التالي لمتابعة التنفيذ، أو أعِد استجابةً لإيقافه.
<?php
public function handle(Request $request, Closure $next): Response
{
if (!$request->user()?->isSubscribed()) {
return redirect("/subscribe");
}
return $next($request);
}تسجيل Middleware
سجّل الأسماء المستعارة لـ Middleware في app/Http/Kernel.php (في Laravel 10) أو bootstrap/app.php (في Laravel 11 والإصدارات الأحدث).
<?php
// Laravel 11+ bootstrap/app.php:
->withMiddleware(function (Middleware $m) {
$m->alias(["subscribed" => EnsureSubscribed::class]);
})معلمات Middleware
مرّر المعلمات إلى Middleware باستخدام النقطتين الرأسيتين.
<?php
Route::middleware("role:admin")->group(function () {
// ...
});
// In middleware handle():
public function handle(Request $request, Closure $next, string $role): ResponseMiddleware اللاحقة
تُنفّذ الشيفرة التي تأتي بعد $next($request) عقب إنشاء الاستجابة — وهذا مفيد للتسجيل وتعديل الاستجابة.
<?php
public function handle(Request $request, Closure $next): Response
{
$response = $next($request); // controller runs here
$response->headers->set("X-App", "Laravel");
return $response;
}أولوية Middleware
ترتيب تنفيذ Middleware مهم. تُنفّذ Middleware العامة (مثل TrimStrings) قبل Middleware الخاصة بالمسارات.
Middleware لتحديد معدل الطلبات
يتضمن Laravel إمكانية تحديد معدل الطلبات من خلال Middleware المسماة throttle.
<?php
Route::middleware("throttle:60,1")->group(function () {
// 60 requests per 1 minute
});الملخص
تعمل Middleware على تصفية طلبات HTTP. طبّق auth لحماية المسارات، وأنشئ Middleware مخصصة لقواعد العمل، واجمع المسارات لتشارك Middleware بطريقة منظمة.
تحقق سريع
ماذا تفعل Middleware المسماة auth للمستخدمين غير المصادق عليهم؟
الأسئلة الشائعة
هل درس «حماية المسارات باستخدام Middleware» مجاني؟
نعم — نص درس «حماية المسارات باستخدام Middleware» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «حماية المسارات باستخدام Middleware»؟
استخدموا middleware الخاص بـ auth وguest لتأمين المسارات وإعادة توجيه المستخدمين تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «حماية المسارات باستخدام Middleware»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المصادقة باستخدام Laravel Breeze
- حماية المسارات باستخدام Middleware
- Gates: عمليات تحقق بسيطة من التفويض
- Policies: التفويض القائم على النماذج