الدالة include في Twig

من موسوعة حسوب
مراجعة 14:32، 3 مايو 2021 بواسطة أسامه-دمراني (نقاش | مساهمات) (1.0: إضافة عنوان الصفحة | 2.0 محتوى الصفحة)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

تعيد الدالة include المحتوى المُخرَج لقالب ما:

{{ include('template.html') }}
{{ include(some_var) }}

يكون للقوالب المدرَجة وصول إلى متغيرات السياق النشط، وإذا كنت تستخدم محمِّل نظام الملفات فيُبحث حينها عن القوالب في المسارات المعرفة به. كذلك يُمرَّر السياق افتراضيًا إلى القالب لكن يمكن تمرير متغيرات إضافية. انظر المثال أدناه حيث يكون لـ template.html وصول إلى المتغيرات التي في السياق الحالي والمتغيرات الإضافية التي تم توفيرها:

{{ include('template.html', {foo: 'bar'}) }}

يمكن تعطيل الوصول إلى السياق بضبط with_context على false، انظر المثال التالي حيث لا يُسمح بالوصول إلا إلى المتغير foo:

{{ include('template.html', {foo: 'bar'}, with_context = false) }}

وهنا لا يُسمح بالوصول إلى أي متغير:

{{ include('template.html', with_context = false) }}

إذا كان التعبير يقيَّم إلى نسخة ‎\Twig\Template أو ‎\Twig\TemplateWrapper فإن Twig يستخدمه مباشرة:

// {{ include(template) }}

$template = $twig->load('some_template.twig');

$twig->display('template.twig', ['template' => $template]);

عند تعيين راية ignore_missing فإن Twig يعيد سلسلة نصية فارغة إذا لم يكن القالب موجودًا:

{{ include('sidebar.html', ignore_missing = true) }}

يمكن توفير قائمة من القوالب التي يُتحقق من وجودها قبل الإدراج، ويُخرَج أول قالب موجود:

{{ include(['page_detailed.html', 'page.html']) }}

إذا تم تعيين ignore_missing فإنه لا يخرِج شيئًا إذا لم يكن أي من القوالب موجودًا، وإلا فإنه يرفع اعتراضًا (exception). إذا أنشأ المستخدم النهائي القالب فيجب وضعه في صندوق اختبار (sand box) قبل إدراجه:

{{ include('page.html', sandboxed = true) }}

الوسائط

  • template: القالب الذي يجب إخراجه.
  • variables: القوالب التي يجب تمريرها إلى القالب.
  • with_context: تمرير متغيرات السياق الحالي أم لا.
  • ignore_missing: تجاهل القوالب المفقودة أم لا.
  • sandboxed: وضع القالب في صندوق اختبار أم لا.

انظر أيضًا

المصادر