السلام عليكم

في بعض الأحيان تجد تضارب بين محركات القولب لإستخدامها لنفس الأنماط التي تستخدمها في ترجمة قوالها كإستخدادم الأقواس المعكوفة {} والمشهور إستخدامها في أنظمة قوالب كثيرة.

يتيح لك Laravel إستخدام محرك القوالب من عدمه من خلال تسمية ملفات القوالب كما نعلم، فمن أفضل الحلول التي إستخدمتها وضع الأجزاء المراد عدم تمريرها لمحرك القوالب Blade ضمن مجلد مخصص وليكن باسم محرك القوالب الذي تستخدمه للغة javaScript على سبيل المثال mustache ستنشئ مجلد باسم mustache داخل مجلد الـ view وتضع ملفات القوالب التي تريد إستخدامها بدون اللاحقة Blade حتى لا يترجمها محرك القوالب Blade وداخل ملفات القوالب الأساسية للموقع التي تستخدم Blade ستقوم بتضمين ملفات قوالب mustache

  • مثال على الهيكلة:

    view/
        header.balde.php
        index.blade.php
        footer.blade.php
        mustache/
                loginForm.php
                signupForm.php
    
  • طريقة التضمين عبر Blade :

    {{ View::make('mustache.loginForm') }}
    
  • في حال كانت ملفات قوالب javaScript كثيرة وتحتاج طلب ما تريد فقط عند الحاجة ستستخدم تلك الطريقة وهي عبر الـ AJAX من خلال تخصيص Route لجلب ملفات القالب كالتالي:

    Route::any('/mustache.{name}', 'MustacheController@get')->where('name','[A-Za-z0-9]+');
    

وداخل الـ MustacheController سننشئ الدالة get للتحقق من وجود الملف وجلبه

public function get($name)
{
    try
    {
        View::getFinder()->find($name);
        return View::make('mustache.'.$name);
    }
    catch (InvalidArgumentException $error)
    {
        return 'الملف غير موجود';
    }
}
  • طبعاً ستتم مناداة Route عبر AJAX لجب القالب الذي تريد إستخدامه.