انتقل إلى محتوى الدرس
الدرس 08
دورة إطار العمل Laravel

المسارات المسماة وتوليد الروابط في LaravelLaravel Named Routes and URL Generation

تسمية المسارات برمجياً وتوليد الروابط الديناميكية عبر الدالة المساعدة route وفحص المسار النشط وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
أقسام الدرس
6
الأمثلة
6
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

تؤدي كتابة مسارات الروابط النصية الثابتة في عشرات الملفات إلى صعوبة بالغة عند الرغبة في تعديل عنوان صفحة لاحقاً. تتيح دالة ->name إسناد اسم برمجي فريد وثابت لكل مسار مثل invoices.index، بحيث يعتمد الكود بالكامل على هذا الاسم المنطقي بدلاً من نص العنوان.

  • دالة التسمية (Fluent ->name Method): إلحاق دالة ->name بنهاية تعريف المسار لمنحه معرفاً برمجياً واضحاً.
  • معيار التسمية النقطية (Dot Naming Convention): استخدام صيغة المورد متبوعاً بالإجراء مثل orders.show لتنظيم الأسماء.
  • تفرد الاسم (Unique Identifiers): يجب أن يحمل كل مسار مسمى اسماً فريداً غير مكرر على مستوى المشروع.
مخطط معماري يوضح المسارات المسماة وتوليد الروابط في Laravel في إطار العمل Laravel 12
PHP
<?php
use Illuminate\Support\Facades\Route;

Route::get('/member-dashboard', function () {
    return 'Dashboard Area';
})->name('dashboard.home');

بمجرد منح المسار اسماً برمجياً، يمكنك توليد الرابط الكامل له في أي مكان داخل التطبيق باستدعاء الدالة المساعدة route. وإذا قمت لاحقاً بتعديل عنوان الرابط في ملف routes/web.php، فستتحدث جميع الروابط المولدة عبر دالة route تلقائياً دون لمس بقية الملفات.

  • فصل الرابط عن الكود (Decoupled URLs): تعديل شكل العنوان في ملف المسارات ينعكس فوراً في كل المشروع.
  • روابط كاملة أو نسبية (Absolute vs Relative): تولد رابطاً كاملاً افتراضياً، أو مساراً نسبياً بتمرير false كمعامل ثالث.
  • اكتشاف الأخطاء فوراً (Fail-Fast Protection): تنبهك فوراً باستثناء واضح إذا كتبت اسم مسار غير موجود.
PHP
<?php
use Illuminate\Support\Facades\Route;

Route::get('/support-center', function () {
    $link = route('support.index');
    return ['generated_url' => $link];
})->name('support.index');

عندما يحتوي المسار المسمى على معاملات ديناميكية مثل معرف الطلب، نمرر مصفوفة ترابطية كمعامل ثانٍ إلى الدالة route. يقوم Laravel بوضع القيم المطابقة لأسماء الأقواس المعقوفة في مكانها الصحيح داخل الرابط، ويحول أي مفاتيح إضافية في المصفوفة تلقائياً إلى معاملات استعلام Query String.

  • تعويض معاملات المسار (URI Segment Matching): المفاتيح المطابقة للأقواس المعقوفة تُوضع مباشرة في أجزاء الرابط.
  • توليد معاملات الاستعلام (Auto Query String): أي مفاتيح إضافية في المصفوفة تُلحق بنهاية الرابط بعد علامة الاستفهام.
  • الاختصار لمعامل واحد (Single Value Shorthand): إذا كان للمسار معامل وحيد يمكن تمرير قيمته مباشرة دون مصفوفة.
PHP
<?php
use Illuminate\Support\Facades\Route;

Route::get('/orders/{id}', fn (int $id) => "Order $id")
    ->name('orders.show');

// Generates: /orders/42?q=1
$url = route('orders.show', ['id' => 42, 'q' => 1]);

نظراً لكثرة الحاجة لتحويل المستخدم نحو مسار مسمى بعد إتمام العمليات، يوفر Laravel الدالة المختصرة والمباشرة to_route. يعيد استدعاء to_route كائن تحويل فوري نحو المسار المستهدف مع إمكانية تمرير معاملات الرابط ورمز حالة HTTP.

  • تحويل مختصر ومباشر (Concise Redirect): يختصر كود التحويل التقليدي إلى استدعاء دالة واحدة واضحة.
  • دعم تمرير المعاملات (Parameter Support): يقبل مصفوفة معاملات الرابط في المعامل الثاني بنفس طريقة دالة route.
  • تخصيص رمز الحالة (Custom HTTP Status): يتيح تمرير الرمز 301 في المعامل الثالث للتحويلات الدائمة.
PHP
<?php
use Illuminate\Support\Facades\Route;

Route::get('/legacy-item/{id}', function (int $id) {
    return to_route('orders.show', ['id' => $id], 301);
});

أثناء معالجة الطلب، يمكنك معرفة اسم المسار النشط حالياً عبر Route::currentRouteName أو مطابقة نمط أسماء عبر Route::is('orders.*'). ولحماية الروابط الحساسة مثل إلغاء الاشتراك أو تفعيل الحساب، تضيف دالة URL::signedRoute توقيعاً رقمياً مشفراً بمفتاح التطبيق يمنع التلاعب بمعاملات الرابط.

  • فحص المسار النشط (Active Route Check): استخدام Route::is للتحقق من القسم الحالي وتمييز القوائم النشطة.
  • الروابط الموقعة رقمياً (URL::signedRoute): تلحق توقيعاً مشفراً بالرابط يمنع تعديل معاملاته يدوياً.
  • الروابط المؤقتة (URL::temporarySignedRoute): تنشئ رابطاً موقعاً ينتهي مفعوله تلقائياً بعد مدة زمنية محددة.
PHP
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\URL;

Route::get('/unsubscribe/{user}', function (int $user) {
    return ['route' => Route::currentRouteName()];
})->name('mail.unsub');
$signed = URL::signedRoute('mail.unsub', ['user' => 7]);

يوفر Laravel عائلة متكاملة من دوال توليد وفحص الروابط تشمل route وto_route وurl والواجهة الساكنة URL، مما يغنيك تماماً عن دمج النصوص يدوياً. راجع الجدول التالي لاختيار الأداة المناسبة لكل حالة برمجية.

وجه المقارنة الهندسيالأسلوب اليدوي أو التقليديمعيار Laravel 12 الحديث
صيانة الروابط وتحديثهاالبحث والاستبدال اليدوي لعناوين الصفحات في عشرات الملفاتتعديل العنوان مرة واحدة في web.php مع ثبات الاسم في ->name
بناء معاملات الرابطدمج النصوص يدوياً مع علامات الاستفهام ودالة urlencodeتمرير مصفوفة ترابطية نظيفة إلى الدالة المساعدة route
تمييز القائمة النشطةفحص نص الرابط الحالي يدوياً بدوال النصوص المعقدةفحص ذكي ومباشر بالأنماط عبر الدالة Route::is('items.*')
حماية الروابط من التلاعبإنشاء جداول رموز يدوية لكل رابط تفعيل أو إلغاء اشتراكتوقيع رقمي مشفر بدون حالة عبر الدالة URL::signedRoute
PHP
<?php
use Illuminate\Support\Facades\URL;

$current = URL::current();
$fullUrl = URL::full();
$prevUrl = URL::previous('/fallback');

echo $current;
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنت في هذا الدرس حول «المسارات المسماة وتوليد الروابط في Laravel» مفاهيم تسمية المسارات بالدالة name، وتوليد الروابط عبر الدالة route، وتمرير المعاملات للمسارات المسماة وفق معايير Laravel 12 الحديثة.

الخطوة التالية والدرس القادم

انتقل الآن إلى الدرس التالي «مجموعات المسارات والبادئات ومسار الطوارئ في Laravel» للبناء التراكمي على ما تعلمته.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Named Routes المسارات المسماة
تسمية المسارات برمجياً وتوليد الروابط الديناميكية عبر الدالة المساعدة route وفحص المسار النشط وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
للمراجعة
02 Assigning Unique Route Names تسمية المسارات بالدالة name
المفهوم الهندسي والتطبيق العملي المباشر لقسم تسمية المسارات بالدالة name في إطار العمل Laravel 12.
للمراجعة
03 Generating URLs with route Helper توليد الروابط عبر الدالة route
المفهوم الهندسي والتطبيق العملي المباشر لقسم توليد الروابط عبر الدالة route في إطار العمل Laravel 12.
للمراجعة
04 Passing Parameters to Named Routes تمرير المعاملات للمسارات المسماة
المفهوم الهندسي والتطبيق العملي المباشر لقسم تمرير المعاملات للمسارات المسماة في إطار العمل Laravel 12.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 MVC MVC
Model View Controller
النمط المعماري الذي يفصل بين نماذج البيانات Models، وطبقات العرض Views، والمتحكمات Controllers في Laravel.
للمراجعة
02 CLI CLI
Command Line Interface
واجهة سطر الأوامر التي تعمل عبر أداة php artisan لتوليد الملفات وإدارة التطبيق.
للمراجعة
03 HTTP HTTP
Hypertext Transfer Protocol
بروتوكول نقل النص الفائق الذي ينظم طلبات المتصفح واستجابات خادم Laravel.
للمراجعة
04 PSR PSR
PHP Standards Recommendations
المعايير القياسية للغة PHP مثل التحميل التلقائي PSR-4 التي يلتزم بها إطار العمل Laravel.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. اكتب ونفّذ المثال البرمجي المشروح في قسم «تسمية المسارات بالدالة name» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.

  2. بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم «توليد الروابط عبر الدالة route» وقارن مخرجات التنفيذ.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 3أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي8 أسئلة تنتظرك
01

ما الهدف الهندسي الأساسي من تسمية المسارات بالدالة name في إطار العمل Laravel 12؟

يسهم تسمية المسارات بالدالة name في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.

02

يساعد الالتزام باصطلاحات Laravel 12 الرسمية في قسم «توليد الروابط عبر الدالة route» على رفع جودة الكود وسهولة اختباره آلياً.

صواب؛ الالتزام بالمعايير القياسية في Laravel 12 يجعل الكود واضحاً وسهل الفحص والصيانة.

03

أي آلية في Laravel 12 تتولى إدارة تمرير المعاملات للمسارات المسماة بشكل مباشر ومنظم؟

توفر طبقة إطار العمل وحاوية الخدمات في Laravel 12 الأدوات القياسية لإدارة تمرير المعاملات للمسارات المسماة.

04

لماذا يُعد تطبيق التحويل للمسار المسمى بـ to_route مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟

لأنه يمنع الأخطاء البرمجية الخفية ويوحد سلوك التطبيق بين بيئتي التطوير والإنتاج.

05

في Laravel 12، يُنصح بكتابة مفاتيح الإنتاج السرية مباشرة داخل ملفات الكود المصدري المرفوعة إلى Git بدلاً من ملفات البيئة.

خطأ؛ يجب حفظ المفاتيح والبيانات السرية في متغيرات البيئة وعدم رفعها أبداً إلى مستودع Git.

06

ما المزايا الهندسية التي يحققها تطبيق فحص المسار النشط والروابط الموقعة في Laravel 12؟ (اختر كل ما ينطبق)

يوفر فصلاً واضحاً للمسؤوليات، وأماناً أعلى أثناء التنفيذ، وتعاوناً أسهل بين أفراد الفريق.

07

يوظف إطار العمل Laravel 12 ميزات PHP 8 الحديثة مثل تحديد أنواع القيم المرجعة لجعل الكود أكثر وضوحاً وأماناً.

صواب؛ يعتمد Laravel 12 بشكل كامل على الصياغة الحديثة للغة PHP 8.2+ وسلامة الأنواع.

08

ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في مقارنة دوال توليد الروابط بالنظام؟

يوفر Laravel 12 واجهات قياسية موحدة وحماية مدمجة تغني عن الكود اليدوي المعرض للأخطاء.