في هذا الدرس 6تصفّح المواضيع
مع توسع التطبيق وزيادة عدد الروابط، يصبح تكرار نفس الخصائص مثل البادئات والوسطاء على كل مسار منفرد عبئاً يضعف جودة الكود. تتيح دالة Route::group جمع المسارات المترابطة داخل دالة مغلقة واحدة لترث جميعها الخصائص المشتركة المعرفة على مستوى المجموعة.
- الخصائص المشتركة (Shared Attributes): تطبيق البادئات أو البرمجيات الوسيطة مرة واحدة على جميع مسارات المجموعة.
- التنظيم المنطقي (Logical Organization): فصل مسارات الزوار عن لوحة التحكم داخل مجموعات واضحة ومرتبة.
- التسلسل البرمجي (Fluent Chaining): ربط دوال الإعداد بالسلسلة قبل استدعاء دالة ->group.
<?php
use Illuminate\Support\Facades\Route;
Route::group([], function () {
Route::get('/overview', fn () => 'Overview');
Route::get('/reports', fn () => 'Reports');
});
يكتمل تنظيم المجموعات عند دمج بادئة العنوان مع بادئة الاسم البرمجي عبر دالة Route::name. فعند كتابة Route::prefix('admin')->name('admin.')، يصبح المسار الفرعي المسمى users.index مسجلاً في النظام بالاسم الكامل admin.users.index.
- النقطة في نهاية البادئة (Trailing Dot Reminder): احرص دائماً على كتابة النقطة في نهاية بادئة الاسم مثل admin. لأن الدمج يتم حرفياً.
- منع تصادم الأسماء (Collision Prevention): يميز بوضوح بين مسار العرض العام ومسار لوحة الإدارة لنفس المورد.
- توليد روابط معبر (Readable route Calls): يتيح استدعاء الرابط بدقة عبر route('admin.users.index').
<?php
use Illuminate\Support\Facades\Route;
Route::prefix('admin')->name('admin.')->group(
function () {
Route::get('/orders', fn () => 'Orders')
->name('orders.index');
}
);
تعتمد المنصات السحابية متعددة المشتركين غالباً على توجيه الزوار بناءً على النطاق الفرعي مثل اسم الشركة قبل نطاق الموقع. تتيح دالة Route::domain تخصيص مجموعة مسارات لنطاق فرعي محدد مع إمكانية التقاط المتغيرات الديناميكية من اسم النطاق وتمريرها لدوال المعالجة.
- النطاقات الفرعية الثابتة (Static Subdomains): تخصيص مسارات مستقلة لنطاق فرعي مثل قسم الفوترة.
- معاملات النطاق الديناميكية (Dynamic Subdomain Params): التقاط اسم المشترك من النطاق الفرعي وتمريره للدالة.
- دعم قيود التحقق (Constraint Support): إمكانية تقييد معامل النطاق الفرعي بدالة where لضمان صحته.
<?php
use Illuminate\Support\Facades\Route;
Route::domain('{sub}.site.test')->group(function () {
Route::get('/dashboard', function (string $sub) {
return ['workspace' => $sub];
});
});
عندما يطلب الزائر رابطاً غير مسجل في ملف المسارات، يعرض Laravel افتراضياً صفحة الخطأ 404 القياسية. وإذا أردت تنفيذ منطق مخصص عند طلب الروابط المفقودة مثل تسجيل العناوين المكسورة أو إرجاع رسالة مخصصة، يمكنك تعريف مسار الطوارئ Route::fallback في نهاية ملف المسارات.
- الملاذ الأخير للمطابقة (Last-Resort Catch): يعمل فقط بعد فشل مطابقة الرابط مع كافة المسارات المسجلة.
- قاعدة الموضع (Placement Rule): يجب وضعه دائماً في آخر سطر داخل ملف routes/web.php.
- دعم وسطاء الويب (Middleware Access): يتمتع بكامل ميزات مجموعة وسطاء الويب مثل قراءة الجلسة.
<?php
use Illuminate\Support\Facades\Route;
// Always place at the very end of routes/web.php
Route::fallback(function () {
return ['error' => 'Requested page was not found'];
});
في بيئة الإنتاج الحية، يساعد ضغط جدول المسارات بالكامل في ملف واحد مخزن مؤقتاً عبر الأمر php artisan route:cache على تسريع مطابقة الروابط بشكل كبير. راجع الجدول المرجعي التالي لإتقان دوال تجميع المسارات وأوامر تخزينها المؤقت.
| وجه المقارنة الهندسي | الأسلوب اليدوي أو التقليدي | معيار Laravel 12 الحديث |
|---|---|---|
| بادئات الروابط المشتركة | تكرار كتابة /admin/ يدوياً أمام عشرات المسارات المنفصلة | توحيد البادئة مرة واحدة عبر Route::prefix('admin')->group |
| تنظيم أسماء المسارات | تسميات عشوائية طويلة عرضة للتكرار والتصادم | بادئة أسماء هرمية منظمة عبر الدالة Route::name('admin.') |
| معالجة الروابط المفقودة | صفحات خطأ جامدة من الخادم بدون وصول لبيانات الجلسة | معالجة ذكية مخصصة عبر Route::fallback في نهاية ملف المسارات |
| سرعة التوجيه في الإنتاج | إعادة بناء جدول المسارات من الصفر مع كل طلب زائر | ترجمة جدول المسارات لملف فائق السرعة بأمر route:cache |
# Compile all application routes for production speed
php artisan route:cache
# Clear the route cache during local development
php artisan route:clear
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
أتقنت في هذا الدرس حول «مجموعات المسارات والبادئات ومسار الطوارئ في Laravel» مفاهيم تنظيم المسارات المشتركة بالمجموعات، وتوحيد بادئة العناوين بـ prefix، وبادئة الأسماء المشتركة للمجموعات وفق معايير Laravel 12 الحديثة.
الخطوة التالية والدرس القادم
انتقل الآن إلى الدرس التالي «إنشاء المتحكمات البرمجية في Laravel وربطها بالمسارات» للبناء التراكمي على ما تعلمته.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 Route Groups مجموعات المسارات
- تنظيم المسارات المترابطة عبر بادئات العناوين وبادئات الأسماء المشتركة وتخصيص مسار الطوارئ للروابط غير الموجودة.
- للمراجعة
- 02 Organizing Routes with Groups تنظيم المسارات المشتركة بالمجموعات
- المفهوم الهندسي والتطبيق العملي المباشر لقسم تنظيم المسارات المشتركة بالمجموعات في إطار العمل Laravel 12.
- للمراجعة
- 03 Shared URI Prefixes with prefix توحيد بادئة العناوين بـ prefix
- المفهوم الهندسي والتطبيق العملي المباشر لقسم توحيد بادئة العناوين بـ prefix في إطار العمل Laravel 12.
- للمراجعة
- 04 Route Name Prefixes in Groups بادئة الأسماء المشتركة للمجموعات
- المفهوم الهندسي والتطبيق العملي المباشر لقسم بادئة الأسماء المشتركة للمجموعات في إطار العمل 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.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
اكتب ونفّذ المثال البرمجي المشروح في قسم «تنظيم المسارات المشتركة بالمجموعات» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.
-
بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم «توحيد بادئة العناوين بـ prefix» وقارن مخرجات التنفيذ.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي8 أسئلة تنتظرك +
ما الهدف الهندسي الأساسي من تنظيم المسارات المشتركة بالمجموعات في إطار العمل Laravel 12؟
يسهم تنظيم المسارات المشتركة بالمجموعات في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.
يساعد الالتزام باصطلاحات Laravel 12 الرسمية في قسم «توحيد بادئة العناوين بـ prefix» على رفع جودة الكود وسهولة اختباره آلياً.
صواب؛ الالتزام بالمعايير القياسية في Laravel 12 يجعل الكود واضحاً وسهل الفحص والصيانة.
أي آلية في Laravel 12 تتولى إدارة بادئة الأسماء المشتركة للمجموعات بشكل مباشر ومنظم؟
توفر طبقة إطار العمل وحاوية الخدمات في Laravel 12 الأدوات القياسية لإدارة بادئة الأسماء المشتركة للمجموعات.
لماذا يُعد تطبيق توجيه النطاقات الفرعية والمجموعات مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟
لأنه يمنع الأخطاء البرمجية الخفية ويوحد سلوك التطبيق بين بيئتي التطوير والإنتاج.
في Laravel 12، يُنصح بكتابة مفاتيح الإنتاج السرية مباشرة داخل ملفات الكود المصدري المرفوعة إلى Git بدلاً من ملفات البيئة.
خطأ؛ يجب حفظ المفاتيح والبيانات السرية في متغيرات البيئة وعدم رفعها أبداً إلى مستودع Git.
ما المزايا الهندسية التي يحققها تطبيق معالجة الروابط المفقودة بـ fallback في Laravel 12؟ (اختر كل ما ينطبق)
يوفر فصلاً واضحاً للمسؤوليات، وأماناً أعلى أثناء التنفيذ، وتعاوناً أسهل بين أفراد الفريق.
يوظف إطار العمل Laravel 12 ميزات PHP 8 الحديثة مثل تحديد أنواع القيم المرجعة لجعل الكود أكثر وضوحاً وأماناً.
صواب؛ يعتمد Laravel 12 بشكل كامل على الصياغة الحديثة للغة PHP 8.2+ وسلامة الأنواع.
ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في جدول مرجعي لدوال تجميع المسارات؟
يوفر Laravel 12 واجهات قياسية موحدة وحماية مدمجة تغني عن الكود اليدوي المعرض للأخطاء.