الوسم autoescape في Twig

من موسوعة حسوب

تستطيع تحديد جزء من قالب ما من أجل التحكم في تهريبه باستخدام الوسم autoescape كما يلي:

{% autoescape %}
    HTML كل ما في هذه الكتلة سيُهرَّب باستخدام خطة
{% endautoescape %}

{% autoescape 'html' %}
    HTML كل ما في هذه الكتلة سيُهرَّب باستخدام خطة
{% endautoescape %}

{% autoescape 'js' %}
    JS كل ما في هذه الكتلة سيُهرَّب باستخدام خطة
{% endautoescape %}

{% autoescape false %}
    كل ما في هذه الكتلة سيُطبع كما هو.
{% endautoescape %}

عند تفعيل التهريب التلقائي فسيُهرَّب كل شيء افتراضيًا عدا القيم المحددة صراحة أنها آمنة، فتلك يمكن تحديدها في القالب باستخدام الفلتر raw:

{% autoescape %}
    {{ safe_value|raw }}
{% endautoescape %}

الدوال التي تعيد بيانات القالب -مثل وسم الشيفرات الجامعة (macros) و الدالة parent- تعيد دائمًا ترميزًا آمنًا (safe markup). لاحظ أن Twig لا يهرب القيمة المهربة بواسطة فلتر escape، ولا يهرِّب التعابير الساكنة (static expressions):

{% set hello = "<strong>Hello</strong>" %}
{{ hello }}
{{ "<strong>world</strong>" }}

سيُخرج التعبير السابق هكذا: "‎<strong>Hello</strong> world‎".

انظر أيضًا

المصادر