8 أساسيات Laravel 11: العروض

Anis MarrouchiAI Bot
بواسطة Anis Marrouchi & AI Bot ·

جاري تحميل مشغل تحويل النص إلى كلام الصوتي...

مقدمة

بالطبع، ليس من العملي إرجاع مستندات HTML كاملة كسلاسل نصية مباشرة من مساراتك ومتحكماتك. لحسن الحظ، توفر العروض طريقة مريحة لوضع كل HTML في ملفات منفصلة. تفصل العروض منطق المتحكم/التطبيق عن منطق العرض وتُخزَّن في دليل resources/views. عند استخدام Laravel، تُكتب قوالب العرض عادةً باستخدام لغة قوالب Blade. قد يبدو عرض بسيط كالتالي:

مرحباً، {{ $name }}

بما أن هذا العرض مخزن في resources/views/greeting.blade.php، يمكننا إرجاعه باستخدام مساعد view العام كما يلي:

Route::get('/', function () {
    return view('greeting', ['name' => 'أحمد']);
});

هل تبحث عن مزيد من المعلومات حول كيفية كتابة قوالب Blade؟ راجع توثيق Blade الكامل للبدء.

كتابة العروض في React / Vue

بدلاً من كتابة قوالب الواجهة الأمامية في PHP عبر Blade، بدأ العديد من المطورين يفضلون كتابة قوالبهم باستخدام React أو Vue. يجعل Laravel هذا سهلاً بفضل Inertia، وهي مكتبة تجعل من السهل ربط واجهة React / Vue الأمامية بخلفية Laravel دون التعقيدات المعتادة لبناء SPA.

إنشاء وعرض العروض

يمكنك إنشاء عرض عن طريق وضع ملف بامتداد .blade.php في دليل resources/views في تطبيقك أو باستخدام أمر Artisan make:view:

php artisan make:view greeting

يخبر الامتداد .blade.php الإطار أن الملف يحتوي على قالب Blade. تحتوي قوالب Blade على HTML بالإضافة إلى توجيهات Blade التي تتيح لك بسهولة طباعة القيم وإنشاء عبارات "if" والتكرار على البيانات والمزيد. بمجرد إنشاء عرض، يمكنك إرجاعه من أحد مسارات تطبيقك أو متحكماته باستخدام مساعد view العام:

Route::get('/', function () {
    return view('greeting', ['name' => 'أحمد']);
});

يمكن أيضاً إرجاع العروض باستخدام واجهة View:

use Illuminate\Support\Facades\View;
 
return View::make('greeting', ['name' => 'أحمد']);

أدلة العروض المتداخلة

يمكن أيضاً تداخل العروض ضمن أدلة فرعية من دليل resources/views. يمكن استخدام ترميز "النقطة" للإشارة إلى العروض المتداخلة. على سبيل المثال، إذا كان عرضك مخزناً في resources/views/admin/profile.blade.php، يمكنك إرجاعه كما يلي:

return view('admin.profile', $data);

يجب ألا تحتوي أسماء أدلة العروض على الحرف ..

إنشاء أول عرض متاح

باستخدام طريقة first من واجهة View، يمكنك إنشاء أول عرض موجود في مصفوفة معطاة من العروض. قد يكون هذا مفيداً إذا كان تطبيقك أو حزمتك يسمح بتخصيص العروض أو الكتابة فوقها:

use Illuminate\Support\Facades\View;
 
return View::first(['custom.admin', 'admin'], $data);

تحديد ما إذا كان العرض موجوداً

إذا كنت بحاجة إلى تحديد ما إذا كان العرض موجوداً، يمكنك استخدام واجهة View. ستعيد طريقة exists القيمة true إذا كان العرض موجوداً:

use Illuminate\Support\Facades\View;
 
if (View::exists('admin.profile')) {
    // ...
}

تمرير البيانات إلى العروض

كما رأيت في الأمثلة السابقة، يمكنك تمرير مصفوفة من البيانات إلى العروض لجعل تلك البيانات متاحة للعرض:

return view('greetings', ['name' => 'فيكتوريا']);

عند تمرير المعلومات بهذه الطريقة، يجب أن تكون البيانات مصفوفة مع أزواج مفتاح/قيمة. يمكنك بعد ذلك الوصول إلى كل قيمة داخل عرضك باستخدام مفاتيح البيانات، مثل {{ $name }}.

كبديل لتمرير مصفوفة كاملة من البيانات إلى دالة مساعد view، يمكنك استخدام طريقة with لإضافة قطع فردية من البيانات إلى العرض:

return view('greeting')
            ->with('name', 'فيكتوريا')
            ->with('occupation', 'رائدة فضاء');

مشاركة البيانات مع جميع العروض

أحياناً، قد تحتاج إلى مشاركة البيانات مع جميع العروض التي يعرضها تطبيقك. يمكنك القيام بذلك باستخدام طريقة share من واجهة View. عادةً، يجب وضع استدعاءات طريقة share داخل طريقة boot في مزود خدمة:

use Illuminate\Support\Facades\View;
 
public function boot()
{
    View::share('key', 'value');
}

مؤلفو العروض

مؤلفو العروض هم callbacks أو طرق فئة يتم استدعاؤها عند عرض العرض. إذا كان لديك بيانات تريد ربطها بعرض في كل مرة يتم فيها عرض ذلك العرض، يمكن لمؤلف العرض مساعدتك في تنظيم هذا المنطق في مكان واحد.

use Illuminate\Support\Facades\View;
 
public function boot()
{
    View::composer('profile', function ($view) {
        $view->with('count', User::count());
    });
}

إرفاق مؤلف بعروض متعددة

يمكنك إرفاق مؤلف عرض بعروض متعددة في وقت واحد عن طريق تمرير مصفوفة من العروض كوسيط أول لطريقة composer:

use App\Views\Composers\MultiComposer;
use Illuminate\Support\Facades\View;
 
View::composer(
    ['profile', 'dashboard'], MultiComposer::class
);

تقبل طريقة composer أيضاً الحرف * كحرف بدل، مما يتيح لك إرفاق مؤلف بجميع العروض:

use Illuminate\Support\Facades\View;
use Illuminate\View\View;
 
View::composer('*', function (View $view) {
    // ...
});

منشئو العروض

"منشئو" العروض مشابهون جداً لمؤلفي العروض؛ ومع ذلك، يتم تنفيذهم فوراً بعد إنشاء العرض بدلاً من الانتظار حتى يكون العرض على وشك العرض:

use App\View\Creators\ProfileCreator;
use Illuminate\Support\Facades\View;
 
View::creator('profile', ProfileCreator::class);

تحسين العروض

بشكل افتراضي، يتم تجميع عروض قوالب Blade عند الطلب. يمكنك استخدام أمر Artisan view:cache لتجميع جميع العروض المستخدمة في تطبيقك مسبقاً لتحسين الأداء:

php artisan view:cache

يمكنك استخدام أمر view:clear لمسح ذاكرة التخزين المؤقت للعروض:

php artisan view:clear

المرجع

لمزيد من المعلومات، راجع توثيق Laravel من فريق Laravel.


هل تريد قراءة المزيد من الدروس التعليمية؟ تحقق من أحدث درس تعليمي لدينا على إجراء المكالمات الصادرة باستخدام Twilio Voice و OpenAI.

ناقش مشروعك معنا

نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.

دعنا نجد أفضل الحلول لاحتياجاتك.

مقالات ذات صلة

6 أساسيات Laravel 11: الطلبات

تعلم أساسيات التعامل مع طلبات HTTP في Laravel 11. يغطي هذا البرنامج التعليمي طرق وخصائص مختلفة للتفاعل مع الطلبات واسترجاع البيانات منها.

15 د قراءة·

7 أساسيات Laravel 11: الاستجابات

تعلم أساسيات التعامل مع استجابات HTTP في Laravel 11. يغطي هذا البرنامج التعليمي طرق وخصائص مختلفة لإنشاء وإدارة الاستجابات بفعالية.

15 د قراءة·