فري ماركر

أباتشي فري ماركر هو محرك قوالب مجاني مبني على لغة جافا ، وكان يركز في الأصل على إنشاء صفحات ويب ديناميكية باستخدام بنية برمجية MVC . يمكنه الآن إنشاء نصوص بناءً على القوالب والبيانات المتغيرة. [ 1 ] وهو لا يعتمد على servlets أو HTTP أو HTML . [ 2 ]

يُستخدم غالبًا لإنشاء التعليمات البرمجية المصدرية أو ملفات التكوين أو رسائل البريد الإلكتروني.

تاريخ

شهد برنامج FreeMarker تاريخًا مضطربًا إلى حد ما حتى عام 2004 تقريبًا، نتيجةً لتحولات جذرية وتغييرات جوهرية أخرى في مناسبات متعددة. كُتب FreeMarker 1 (المعروف الآن باسم FreeMarker Classic، وهو مشروع منفصل) في الأصل بواسطة بنجامين جير ومايك باير. ومنذ عام 2002، تولى جوناثان ريفوسكي قيادة المشروع، وأصدر FreeMarker 2، الذي بدأ سلسلة من التغييرات الجوهرية. كان الهدف الرئيسي من هذه التغييرات هو جعل لغة القوالب أكثر دقة، أي اكتشاف أكبر عدد ممكن من الأخطاء الإملائية وغيرها من الأخطاء الشائعة. كما تم إدخال خاصية التغليف التلقائي للكائنات، إلى جانب التطوير التدريجي لنظام أنواع لغة القوالب. اكتسبت اللغة العديد من الميزات المتقدمة، مثل إمكانيات برمجة الماكرو ومساحات الأسماء الأكثر قوة. وصلت اللغة إلى حالة استقرار تام مع الإصدار 2.3، الذي صدر في الربع الثالث من عام 2004. وحتى عام 2022، ظل المنتج متوافقًا مع الإصدارات السابقة. ولا يُتوقع حدوث تغييرات جوهرية غير متوافقة مع الإصدارات السابقة في سلسلة FreeMarker 2 مستقبلًا.

في أواخر عام 2015، تم منح FreeMarker لمؤسسة Apache Software Foundation ، حيث دخلت حاضنة Apache، وفي 21 مارس 2018 أصبحت مشروعًا مقبولًا بالكامل من مشاريع Apache.

مثال

القالب التالي:

<html> <body> <p> مرحباً $ { name } ! لديك الرسائل التالية: < #list messages as m > <p> <b> $ { m.from } : </b> $ { m.body } </p> < / # list > </p> </body> </html>

ستنتج المعالجة بواسطة برنامج FreeMarker شيئًا مثل:

<html> <body> <p> مرحباً جو ! لديك الرسائل التالية: <p> <b> تيم : </ b > من فضلك لا تنسَ إحضار أوراق المؤتمر! < / p > <p> <b> سيندي : < / b > هل يمكنك زيارتي بعد ظهر اليوم ؟ < / p > <p> <b> ريتشارد : < / b > لا تنسَ الأوراق هذه المرة ! < / p > </p> </body> </html>

تأتي متغيرات مثل "name" و"messages" من خارج القالب، وبالتالي يقتصر دور مصمم القالب على معالجة مسائل العرض فقط. يبقى القالب كما هو بغض النظر عن مصدر هذه المتغيرات، سواءً من قاعدة بيانات أو ملف تعريف ارتباط أو أي طريقة حساب أخرى. كما يمكن إخفاء واجهة برمجة تطبيقات Java (وبالتالي الفئة) الخاصة بالقيم في FreeMarker باستخدام تقنية تُسمى تغليف الكائنات. على سبيل المثال، قد تبدو "messages" كقائمة أو مصفوفة من كائنات JavaBeans التي تحتوي على خاصيتي "from" و"body"، ولكنها قد تكون شيئًا مختلفًا تمامًا، ولن يتأثر القالب بذلك (طالما تم استخدام غلاف كائن مناسب).

انظر أيضاً

مراجع

  1. كاردوزا، كريستينا (27 مارس 2017). "تحديثات لبرامج Apache Calcite وFreeMarker وGora وPhoenix وSolr" . صحيفة SD Times . تاريخ الاسترجاع: 5 فبراير 2024 .
  2. ^ ميتابالي، جيشنو سوراف. آرثر، ميناكا بوشبا (2021). “مسح على محركات القوالب في جافا”. ITM شبكة المؤتمرات . 37 . علوم إي دي بي: 01007. دوي : 10.1051/itmconf/20213701007 . ISSN 2271-2097 .