الانتقال إلى MOFTemplate 2.0
الإصدار 2.0 يحافظ على الفكرة وصيغة القوالب الأساسية، لكنه يكسر التوافق عمدًا مع الخصائص الخطرة أو الخارجة عن مسؤولية محرك القوالب.
الخلاصة
إذا كانت قوالبك تعتمد على المتغيرات والشروط والحلقات و
include_tpl فقط، فغالبًا الانتقال مباشر مع مراجعة بسيطة للـ escaping.ما بقي
| الميزة | 2.0 |
|---|---|
assign() | مدعومة |
| المتغيرات | مدعومة مع HTML escaping افتراضي |
if / elseif / else | مدعومة بصيغة مبسطة |
loop | مدعومة، بما فيها nested loops وposition |
include_tpl | مدعومة داخل مجلد القوالب فقط |
show() | موجود للتوافق الأساسي؛ يفضّل render() |
ما أزيل ولماذا
| القديم | القرار |
|---|---|
| PHP داخل القالب | أزيل لأسباب أمنية وفصل المسؤوليات |
SQL / do_sql() | أزيل؛ جلب البيانات مسؤولية التطبيق |
| pagination داخل المحرك | أزيل؛ مسؤولية التطبيق أو طبقة البيانات |
$GLOBALS | لا تُدمج تلقائيًا مع القالب |
| استدعاء دوال PHP الحرة | غير مدعوم |
خطوات التحديث
استبدل ملف المحرك
استخدم moftemplate-engine.php من حزمة 2.0 في مشروع تجريبي أولًا.
مرّر البيانات صراحةً
echo $tpl->render('page.html', $data);راجع HTML الخام
المتغيرات أصبحت escaped افتراضيًا. استخدم {raw trusted_html} فقط للمحتوى الموثوق أو المنقّى مسبقًا.
انقل SQL وpagination إلى التطبيق
حضّر البيانات قبل استدعاء القالب.
شغّل الاختبارات التطبيقية
راجع القوالب المهمة وحالات الخطأ قبل نقل التحديث للإنتاج.
النسخة الأصلية
النسخة 1.4.0.2 محفوظة للأرشفة والدراسة فقط، وليست موصى بها للإنتاج على PHP الحديثة. تجدها في صفحة التحميل.