في هذا الدرس 6تصفّح المواضيع
تؤدي كتابة مسارات الروابط النصية الثابتة في عشرات الملفات إلى صعوبة بالغة عند الرغبة في تعديل عنوان صفحة لاحقاً. تتيح دالة ->name إسناد اسم برمجي فريد وثابت لكل مسار مثل invoices.index، بحيث يعتمد الكود بالكامل على هذا الاسم المنطقي بدلاً من نص العنوان.
- دالة التسمية (Fluent ->name Method): إلحاق دالة ->name بنهاية تعريف المسار لمنحه معرفاً برمجياً واضحاً.
- معيار التسمية النقطية (Dot Naming Convention): استخدام صيغة المورد متبوعاً بالإجراء مثل orders.show لتنظيم الأسماء.
- تفرد الاسم (Unique Identifiers): يجب أن يحمل كل مسار مسمى اسماً فريداً غير مكرر على مستوى المشروع.
<?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
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
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
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
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
use Illuminate\Support\Facades\URL;
$current = URL::current();
$fullUrl = URL::full();
$prevUrl = URL::previous('/fallback');
echo $current;
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
أتقنت في هذا الدرس حول «المسارات المسماة وتوليد الروابط في Laravel» مفاهيم تسمية المسارات بالدالة name، وتوليد الروابط عبر الدالة route، وتمرير المعاملات للمسارات المسماة وفق معايير Laravel 12 الحديثة.
الخطوة التالية والدرس القادم
انتقل الآن إلى الدرس التالي «مجموعات المسارات والبادئات ومسار الطوارئ في Laravel» للبناء التراكمي على ما تعلمته.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات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
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 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.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
اكتب ونفّذ المثال البرمجي المشروح في قسم «تسمية المسارات بالدالة name» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.
-
بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم «توليد الروابط عبر الدالة route» وقارن مخرجات التنفيذ.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي8 أسئلة تنتظرك +
ما الهدف الهندسي الأساسي من تسمية المسارات بالدالة name في إطار العمل Laravel 12؟
يسهم تسمية المسارات بالدالة name في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.
يساعد الالتزام باصطلاحات Laravel 12 الرسمية في قسم «توليد الروابط عبر الدالة route» على رفع جودة الكود وسهولة اختباره آلياً.
صواب؛ الالتزام بالمعايير القياسية في Laravel 12 يجعل الكود واضحاً وسهل الفحص والصيانة.
أي آلية في Laravel 12 تتولى إدارة تمرير المعاملات للمسارات المسماة بشكل مباشر ومنظم؟
توفر طبقة إطار العمل وحاوية الخدمات في Laravel 12 الأدوات القياسية لإدارة تمرير المعاملات للمسارات المسماة.
لماذا يُعد تطبيق التحويل للمسار المسمى بـ to_route مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟
لأنه يمنع الأخطاء البرمجية الخفية ويوحد سلوك التطبيق بين بيئتي التطوير والإنتاج.
في Laravel 12، يُنصح بكتابة مفاتيح الإنتاج السرية مباشرة داخل ملفات الكود المصدري المرفوعة إلى Git بدلاً من ملفات البيئة.
خطأ؛ يجب حفظ المفاتيح والبيانات السرية في متغيرات البيئة وعدم رفعها أبداً إلى مستودع Git.
ما المزايا الهندسية التي يحققها تطبيق فحص المسار النشط والروابط الموقعة في Laravel 12؟ (اختر كل ما ينطبق)
يوفر فصلاً واضحاً للمسؤوليات، وأماناً أعلى أثناء التنفيذ، وتعاوناً أسهل بين أفراد الفريق.
يوظف إطار العمل Laravel 12 ميزات PHP 8 الحديثة مثل تحديد أنواع القيم المرجعة لجعل الكود أكثر وضوحاً وأماناً.
صواب؛ يعتمد Laravel 12 بشكل كامل على الصياغة الحديثة للغة PHP 8.2+ وسلامة الأنواع.
ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في مقارنة دوال توليد الروابط بالنظام؟
يوفر Laravel 12 واجهات قياسية موحدة وحماية مدمجة تغني عن الكود اليدوي المعرض للأخطاء.