في هذا الدرس 6تصفّح المواضيع
تمثل طبقة الواجهات في معمارية MVC الجزء المسؤول عن عرض صفحات HTML للمستخدم النهائي. يساعد فصل الكود المرئي داخل ملفات عرض مستقلة على إبقاء المتحكمات نظيفة ومركزة على معالجة الطلبات فقط.
- فصل طبقة العرض (Presentation Separation): تعزل الواجهات وسوم HTML عن منطق التوجيه والمتحكمات البرمجية.
- مجلد التخزين الافتراضي (Default Directory): تُحفظ جميع قوالب العرض داخل مجلد resources/views القياسي.
- امتداد ملفات القوالب (Blade Extension): تنتهي الملفات بامتداد .blade.php ليتعرف عليها محرك القوالب.
<!-- resources/views/welcome.blade.php -->
<!DOCTYPE html>
<html lang="en">
<body>
<h1>Welcome to CloseTag Store</h1>
</body>
</html>
يوفر إطار Laravel في إصداراته الحديثة أمر Artisan مخصصاً لتوليد ملفات الواجهات مباشرة من سطر الأوامر. يمكنك تمرير مسارات فرعية باستخدام النقطة أو الشرطة المائلة لتنظيم القوالب حسب أقسام المشروع.
- التوليد عبر الأوامر (Artisan Generation): ينشئ أمر make:view ملف قالب جديد بالامتداد الصحيح فوراً.
- إنشاء المجلدات تلقائياً (Auto Subfolders): يتولى الأمر بناء أي مجلدات فرعية غير موجودة داخل resources/views.
- التنظيم حسب الميزات (Feature Grouping): يسهل تقسيم الواجهات في مجلدات مثل products صيانة المشاريع الكبيرة.
# Generate top-level view
php artisan make:view home
# Generate nested view with dot syntax
php artisan make:view pages.contact
# Resulting file path:
# resources/views/pages/contact.blade.php
يمكنك إرجاع أي واجهة عرض من داخل دوال المتحكم أو المسارات عبر الدالة المساعدة view أو الواجهة الساكنة View::make. كما يتيح المسار المختصر Route::view عرض الصفحات الثابتة مباشرة دون الحاجة لإنشاء متحكم.
- الدالة المساعدة (view Helper): تُرجع الدالة كائن عرض متكامل يتحول تلقائياً إلى استجابة HTTP.
- الواجهة الساكنة (View::make): تؤدي نفس الوظيفة تماماً عبر مصنع الواجهات في حاوي الخدمات.
- مسارات العرض المباشر (Route::view): تختصر تسجيل الصفحات الثابتة التي لا تتطلب معالجة داخل متحكم.
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\View;
Route::get('/home', fn () => view('home'));
Route::get('/terms', fn () => View::make('terms'));
Route::view('/about', 'pages.about');
عند توزيع ملفات العرض داخل مجلدات فرعية، يعتمد Laravel الصيغة النقطية الأنيقة لاستدعاء القوالب بدلاً من الفواصل المائلة. فالملف المحفوظ في المسار resources/views/shop/cart/index.blade.php يُستدعى بالصيغة النقطية shop.cart.index.
- الفصل بالنقاط (Dot Notation): تعبر كل نقطة عن الانتقال لمجلد فرعي داخل مجلد الواجهات.
- حذف الامتداد (Omit Extension): يُمرر اسم الملف مجرداً دون كتابة اللاحقة .blade.php في الكود.
- توافق أنظمة التشغيل (OS Agnostic): تضمن الصيغة النقطية عمل المسارات بكفاءة على أنظمة Windows وLinux.
<?php
class DashboardController extends Controller
{
public function index()
{
return view('admin.reports.overview');
}
}
تحتاج التطبيقات الديناميكية أحياناً للتحقق من وجود ملف القالب على القرص قبل محاولة عرضه لتجنب إطلاق استثناء. توفر دالة View::exists فحصاً منطقياً سريعاً، بينما تختار دالة View::first أول قالب متاح من قائمة مرتبة.
- فحص توفر القالب (View::exists): تُرجع قيمة منطقية تؤكد وجود ملف الواجهة قبل استدعائه.
- أولوية العرض البديل (View::first): تبحث في مصفوفة أسماء وتعرض أول قالب موجود فعلياً.
- دعم القوالب المخصصة (Safe Fallbacks): تمنحك آلية آمنة لتوفير واجهات مخصصة مع وجود قالب افتراضي مضمون.
<?php
use Illuminate\Support\Facades\View;
if (View::exists('themes.Eid.banner')) {
return view('themes.Eid.banner');
}
return View::first(['custom.home', 'default.home']);
يساعدك اختيار الدالة المناسبة لعرض الواجهات على كتابة متحكمات مختصرة ومنع أخطاء غياب القوالب أثناء التشغيل. راجع الجدول المقارن التالي لاختيار الأسلوب الأمثل لتوليد وعرض ملفات الواجهات في مشروعك.
| وجه المقارنة الهندسي | الأسلوب اليدوي أو غير المحمي | معيار Laravel 12 الحديث |
|---|---|---|
| فصل كود HTML | طباعة نصوص HTML مباشرة داخل دوال المتحكم | ملفات قوالب مستقلة داخل مجلد resources/views |
| مسارات المجلدات الفرعية | كتابة فواصل المسارات اليدوية غير المتوافقة بين الأنظمة | استخدام الصيغة النقطية القياسية view('shop.item') |
| إنشاء ملفات القوالب | إنشاء المجلدات يدوياً واحتمال الخطأ في امتداد الملف | التوليد الفوري عبر أمر php artisan make:view |
| التحقق والبدائل | فحص المسارات المطلقة يدوياً عبر دوال الملفات التقليدية | استخدام دوال View::exists وView::first المدمجة |
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\View;
Route::view('/privacy', 'legal.privacy');
Route::get('/portal', function () {
return View::first(['portal.v2', 'portal.v1']);
});
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
أتقنت في هذا الدرس حول «إنشاء وعرض ملفات الواجهات في Laravel» مفاهيم دور واجهات العرض في MVC، وإنشاء ملفات الواجهات بأمر Artisan، وإرجاع الواجهات عبر دالة view وفق معايير Laravel 12 الحديثة.
الخطوة التالية والدرس القادم
انتقل الآن إلى الدرس التالي «تمرير البيانات ومشاركتها عبر واجهات العرض في Laravel» للبناء التراكمي على ما تعلمته.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 Creating Views إنشاء الواجهات
- إنشاء ملفات العرض داخل مجلد resources/views وتنظيم المجلدات الفرعية بالصيغة النقطية وإرجاعها من المتحكم وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
- للمراجعة
- 02 Laravel Views Role in MVC دور واجهات العرض في MVC
- المفهوم الهندسي والتطبيق العملي المباشر لقسم دور واجهات العرض في MVC في إطار العمل Laravel 12.
- للمراجعة
- 03 Creating Views in Resources Folder إنشاء ملفات الواجهات بأمر Artisan
- المفهوم الهندسي والتطبيق العملي المباشر لقسم إنشاء ملفات الواجهات بأمر Artisan في إطار العمل Laravel 12.
- للمراجعة
- 04 Rendering Views with View Helper إرجاع الواجهات عبر دالة view
- المفهوم الهندسي والتطبيق العملي المباشر لقسم إرجاع الواجهات عبر دالة view في إطار العمل 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.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
اكتب ونفّذ المثال البرمجي المشروح في قسم «دور واجهات العرض في MVC» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.
-
بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم «إنشاء ملفات الواجهات بأمر Artisan» وقارن مخرجات التنفيذ.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي8 أسئلة تنتظرك +
ما الهدف الهندسي الأساسي من دور واجهات العرض في MVC في إطار العمل Laravel 12؟
يسهم دور واجهات العرض في MVC في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.
يساعد الالتزام باصطلاحات Laravel 12 الرسمية في قسم «إنشاء ملفات الواجهات بأمر Artisan» على رفع جودة الكود وسهولة اختباره آلياً.
صواب؛ الالتزام بالمعايير القياسية في Laravel 12 يجعل الكود واضحاً وسهل الفحص والصيانة.
أي آلية في Laravel 12 تتولى إدارة إرجاع الواجهات عبر دالة view بشكل مباشر ومنظم؟
توفر طبقة إطار العمل وحاوية الخدمات في Laravel 12 الأدوات القياسية لإدارة إرجاع الواجهات عبر دالة view.
لماذا يُعد تطبيق تنظيم مجلدات العرض بالصيغة النقطية مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟
لأنه يمنع الأخطاء البرمجية الخفية ويوحد سلوك التطبيق بين بيئتي التطوير والإنتاج.
في Laravel 12، يُنصح بكتابة مفاتيح الإنتاج السرية مباشرة داخل ملفات الكود المصدري المرفوعة إلى Git بدلاً من ملفات البيئة.
خطأ؛ يجب حفظ المفاتيح والبيانات السرية في متغيرات البيئة وعدم رفعها أبداً إلى مستودع Git.
ما المزايا الهندسية التي يحققها تطبيق التحقق من وجود ملف الواجهة في Laravel 12؟ (اختر كل ما ينطبق)
يوفر فصلاً واضحاً للمسؤوليات، وأماناً أعلى أثناء التنفيذ، وتعاوناً أسهل بين أفراد الفريق.
يوظف إطار العمل Laravel 12 ميزات PHP 8 الحديثة مثل تحديد أنواع القيم المرجعة لجعل الكود أكثر وضوحاً وأماناً.
صواب؛ يعتمد Laravel 12 بشكل كامل على الصياغة الحديثة للغة PHP 8.2+ وسلامة الأنواع.
ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في مرجع دوال إنشاء وعرض الواجهات؟
يوفر Laravel 12 واجهات قياسية موحدة وحماية مدمجة تغني عن الكود اليدوي المعرض للأخطاء.