الاختبارات والمتغيرات في محرك القوالب Twig

اقرأ في هذا المقال


الاختبارات في محرك القوالب Twig

يدعم محرك القوالب (Twig) في لغة البرمجة بي إتش بي (PHP) مفهوم الاختبارات (Tests)، والتي يتم استخدامها مع المعامل (is) لاختبار متغير إذا حقق تعبير معين، بحيث يكون المعامَل (operand) الأيسر للعامل (is) هو العنصر الذي سيتم اختباره أو العنصر المُختبَر، والأيمن هو اسم الاختبار، وفيما يلي أهم الاختبارات التي تُستخدم مع محرك القوالب (Twig):

الاختبارالاستخدام

constant

يقوم هذا الاختبار بالتحقق فيما إذا كان المتغير له نفس القيمة التي يمتكلها ثابت معين، حيث من الممكن استخدام الثوابت العامة (global constants) مع هذا الإختبار.
definedيستخدم هذا الإختبار للتحقق فيما إذا كان المتغير تم تعريفه في السياق الحالي أم لا، وهذا الاختبار مفيد جداً عند استخدام الخيار (strict_ variables) في محرك القوالب (Twig).

divisible by

يقوم هذا الاختبار بالتحقق فيما إذا كان المتغير يقبل القسمة على عدد معين، مثال:
{%ifloop. indexisdivisibleby(5)%} {% endif%}
evenيقوم هذا الاختبار بالتحقق فيما إذا كان الرقم المُعطى زوجي وبعد ذلك سيعيد القيمة (true )، ويتم استخدامه على النحو التالي:
{{variseven}}
iterableيقوم هذا  الاختبار بالتحقق فيما إذا كان المتغير المعطى مصفوفة أو كائن آخر من الممكن المرور على عناصره والذي يسمى ب ( traversable object).
oddيُستخدم هذا الاختبار للتحقق فيما إذا كان العدد المعطى فردياً، وفي حال كان هذا العدد فردي فإنه يعيد القيمة (True)، ويتم استخدامه على النحو التالي:
{{varisodd}}
same asيُستخدم هذا الاختبار للتحقق فيما إذا كان المتغير يطابق متغيراً آخر.

المتغيرات في محرك القوالب Twig

يتم تمرير المتغيرات إلى القوالب في (Twig) من أجل التعديل داخل القالب، وقد تحتوي المتغيرات على سمات (attributes) أو عناصر يستطيع المستخدم الوصول إليها، وتستخدم النقطة (.) للوصول إلى سمات متغير ما لكائن (PHP) أو عناصر من مصفوفة (PHP)، وفيما يلي المتغيرات التي تكون متاحة دائمًا في القوالب:

  • (‎_self) : يشير هذا المتغير إلى اسم القالب الحالي.
  • (‎(_context: يشير هذا المتغير إلى السياق الحالي.
  • (‎(_charset: يشير هذا المتغير إلى مجموعة من الحروف ( charset).

المصدر: TestsTwig Template Unit TestingUsing Variables in Twig and Craft CMS


شارك المقالة: