مقدمة عن Twig

من موسوعة حسوب
مراجعة 14:22، 13 أبريل 2021 بواسطة أسامه-دمراني (نقاش | مساهمات) (إدخال 2.0: محتوى)

مرحبًا بك في توثيق محرك القوالب Twig، المحرك المرن السريع الآمن للغة PHP، هذا المحرك مصمم ليناسب المصممين والمطورين على حد سواء بالتزامه بمبادئ لغة PHP وإضافة وظائف مفيدة وعملية لبيئات القولبة، وهذه المزايا هي:

  • السرعة: يصرِّف (Compiles) محرك Twig القوالب لتكون شيفرة PHP بسيطة ومحسنة، وتم تقليل سقف تلك الشيفرات إلى الحد الأدنى مقارنة بشيفرة PHP العادية.
  • الأمان: يحتوي Twig على وضع صندوق الاختبار (Sandbox) من أجل تقييم شيفرات القوالب غير الموثوق بها، وهذا يسمح لـ Twig أن يُستخدم كلغة قوالب للتطبيقات التي قد يعدِّل المستخدمون فيها تصميم القالب نفسه,
  • المرونة: يقوم Twig على معجم (lexer) ومحلل (parser) يتسمان بالمرونة، وهذا يسمح للمطور أن يعرف وسومه وفلاتره الخاصة، وينشئ DSL الخاص به.

يُستخدم Twig في الكثير من المشاريع مفتوحة المصدر مثل Symfony و Drupal8 و eZPublish و phpBB و Matomo و OroCRM، كما تدعمه كثير من أطر العمل (frameworks) مثل Slim و Yii و Laravel و Codeigniter، على سبيل المثال لا الحصر.

شروط التثبيت

يتطلب الإصدار الثالث من Twig فما بعده إصدار 7.2.5 من لغة PHP على الأقل كي يعمل.

استخدام واجهة برمجة التطبيقات (API) الأساسي

هذا القسم يعطيك نبذة مختصرة عن واجهة برمجة التطبيقات في لغة PHP لمحرك Twig:

require_once '/path/to/vendor/autoload.php';

$loader = new \Twig\Loader\ArrayLoader([
    'index' => 'Hello {{ name }}!',
]);
$twig = new \Twig\Environment($loader);

echo $twig->render('index', ['name' => 'Fabien']);

يستخدم Twig محمِّل (‎\Twig\Loader\ArrayLoader) من أجل العثور على القوالب، وبيئةً (‎\Twig\Environment) من أجل تخزين إعداداتها. ويحمِّل التابع render()‎ القالب المُمرَّر كوسيط أول، ويخرجه مع المتغيرات الممررة كوسيط ثاني. وبما أن القوالب تُخزَّن في نظام الملفات (filesystem) فإن Twig يأتي بمحمل نظام ملفات أيضًا:

$loader = new \Twig\Loader\FilesystemLoader('/path/to/templates');
$twig = new \Twig\Environment($loader, [
    'cache' => '/path/to/compilation_cache',
]);

echo $twig->render('index.html', ['name' => 'Fabien']);

التثبيت

ثبت Composer وشغل الأمر التالي في الطرفية من أجل الحصول على الإصدار الأخير:

composer require "twig/twig:^3.0"

مصادر