هل تواجه مشكلة إنشاء موقع ويب تم إنشاؤه بواسطة مبرمج (ربما أنت) ومصمم؟ ألا تعرف كيف تجعل المهمة أسهل لكما؟ اسمح لي أن أقدم لك الإجابة: استخدم FastTemplate لتسهيل تخصيص موقعك!
حسنًا، ربما تتساءل لماذا يجب عليك استخدام FastTemplates.
· يمكن تغيير مظهر موقعك بالكامل في ثوانٍ · البرمجة المجردة، لا توجد أكواد HTML غير المرغوب فيها · لا يحتاج المصممون إلى الاهتمام بجميع الأكواد "الغامضة" · سريع بشكل مدهش · أسهل في إعادة استخدام القوالب القديمة (مقابل النموذج العادي)
FastTemplate مشتق من حزمة Perl التي تحمل نفس الاسم (والتي يمكن العثور عليها على CPAN). يمكنك تنزيل إصدار PHP من صفحته الرئيسية (عنوان التنزيل لهذا الموقع هو: http://www.phpe.net/downloads/1.shtml). ما عليك سوى أحد ملفات الفئة (class.FastTemplate.php).
اسمحوا لي أولاً أن أشرح الفرق بين استخدام قالب لإنشاء صفحة وتكراره أو طباعته ببساطة.
يعد استخدام طريقة الصدى/الطباعة أمرًا رائعًا لكتابة نصوص قصيرة، لكنه لا يساعدك في التنظيم والتخصيص بشكل أفضل. من ناحية أخرى، تمنحك القوالب القدرة على إنشاء مواقع متعددة اللغات فقط عن طريق تغيير المعلمة. يمكنهم دفعك إلى الاهتمام أكثر بما عليك القيام به.
لا تخف من التفكير قبل البدء في البرمجة. قد يستغرق الأمر بعض الوقت، لكن التكلفة ستؤتي ثمارها مع نمو المشروع.
لذا، كيفية تطبيق FastTemplate؟ تحتاج أولاً إلى إجراء مكالمة بسيطة:
<?php $tpl=new FastTemplate ("path");
?>
قم بتمرير المسار إلى الدليل حيث يتم تخزين جميع ملفات القالب الخاصة بك. تقوم بإرجاع كائن، والذي يمكنك استخدامه لتعيين المعلمة، وإنشاء الصفحة، وما إلى ذلك.
يعتمد FastTemplate على افتراض أن الصفحة الكبيرة تتكون من العديد من الأجزاء الصغيرة. كل جزء له اسم فريد. أصغر جزء هو تخصيصها لسلسلة نصية عادية باسم فريد. ويمكن القيام بذلك عبر <?php
$tpl->تعيين(NAME, "text");
?>
لإكمال. الآن، إذا كان أحد القوالب الخاصة بك يحتوي على {NAME}، فإن FastTemplate يعرف هدفك.
بالإضافة إلى ذلك، يحتاج FastTemplate إلى معرفة الطريقة التي تريد بها استدعاء القالب الخاص بك. تحتاج إلى تمرير مصفوفة ترابطية (associative
array) إلى <?php $tpl->define() ?>
تعال واعطيه تلميحا.
<?php
$tpl->define(array(foo => "foo.tpl",
bar => "bar.tpl"));
?>
ستعطي هذه المهام ملفات foo وbar مختلفة على التوالي (تسمى foo.tpl وbar.tpl).
الآن تريد أن يقوم FastTemplate باستبدال كافة {MACROS} في القالب foo بالقيم المقابلة لها. عن طريق إصدار الأمر
<?php
$tpl->parse(PAGECONTENT, "foo");
?>
لتحقيق. سيقوم هذا الأمر بتعيين محتويات القالب "foo" إلى PAGECONTENT. بالطبع، لم ننته بعد، لأن شريط القالب هو تعريف الصفحة الرئيسية، ويحتاج FastTemplate إلى استبداله.
ماكرو {PAGECONTENT}. نحتاج أيضًا إلى تعيين قيمة لـ PAGETITLE، كما يلي: <?php
$tpl->تعيين(PAGETITLE, "اختبار FooBar");
$tpl->parse(MAIN, "bar");
?>
سهل، أليس كذلك؟ نحتاج فقط إلى إخراجها الآن: <?php
$tpl->FastPrint(MAIN);
?>
تعرض الملفات الثلاثة التالية وصفًا أكثر تفصيلاً للتمارين الفعلية. لا أعرف كيف أعيش بدون هذه التكنولوجيا في الحياة الحقيقية--
سيكون المصممون لديك سعداء وسيبتسم رئيسك لأنك تستطيع إنجاز المزيد من العمل في وقت أقل.
bar.tpl <!-- bar.tpl -->
<أتش تي أم أل>
<HEAD><TITLE>عالم الميزات - {PAGETITLE}</TITLE></HEAD>
<لون الجسم = نص أسود = أبيض>
<H1>{PAGETITLE}</H1>
{محتوى الصفحة}
</الجسم>
</HTML>
foo.tpl <!-- foo.tpl -->
ومن الواضح أنه لم يتم فعل أي شيء. يرجى الاطلاع على {NAME}.
Demo.php3 <?php
include "class.FastTemplate.php3"
$tpl = new FastTemplate( ".");
$tpl->define(array(foo => "foo.tpl, bar => "bar.tpl"));
$tpl->assi(NAME, "me");
$tpl->تعيين(PAGETITLE, "مرحبًا!");
$tpl->parse(PAGECONTENT, "foo");
$tpl->parse(MAIN, "bar");
$tpl->FastPrint(MAIN);
?>
إنشاء جدول كامل لقد قمت أيضًا بكتابة مثال قصير لتوضيح كيفية إنشاء جدول كامل من قالب من صف واحد. إنها فعالة لأنك لا تزال لا تحتاج إلى تعديل مستند HTML مباشرة.
نقوم بإنشاء جدول HTML عن طريق إلحاق محتوى القالب باسم فريد محدد بالفعل. يمكن القيام بذلك عن طريق الاتصال
عند $tpl->parse()، قم بإضافة "." قبل اسم القالب لتحقيق ذلك. <?php
// قم بتعيين محتويات القالب foo إلى TPL1
$tpl->parse(TPL1, "foo");
// قم بإرفاق محتوى شريط القالب بعد TPL1
$tpl->parse(TPL1, ".bar");
?>
page.tpl
<HTML>
<HEAD><TITLE>عالم الميزات - {PAGE_TITLE}</TITLE></HEAD>
<لون الجسم = نص أسود = أبيض>
<H1>{PAGE_TITLE}</H1>
{PAGE_CONTENT}
</الجسم>
</HTML>
table.tpl
<TABLE>
<TR> <TH>الاسم</TH> <TH>الحجم</TH> </TR>
{TABLE_ROWS}
</TABLE>
table_row.tpl
<TR>
<TD>{FILENAME}</TD>
<TD>{FILESIZE</TD>
</TR>
yad.php3
<?php
تشمل "class.FastTemplate.php3"؛
وظيفة تهيئةTemplates () {
global $tpl
$tpl = new FastTemplate( ".");
$tpl->تعريف(صفيف(page =>"page.tpl"،
الجدول => "table.tpl"،
table_row => "table_row.tpl" ) );
}
الدالة ReadCurrentDirectory() {
عالمي $tpl
$handle = opendir( ".");
بينما($filename = readdir($handle)) {
$tpl->تعيين(FILENAME, $filename);
$tpl->تعيين(FILESIZE, حجم الملف($filename));
$tpl->parse(TABLE_ROWS, ".table_row");
}
مغلق(مقبض $);
$tpl->parse(PAGE_CONTENT, "table");
}
وظيفة صفحة الطباعة(عنوان $) {
عالمي $tpl
;
$tpl->parse(FINAL, "page");
$tpl->FastPrint(FINAL);
}
تهيئة القوالب ()؛
ReadCurrentDirectory();
Printpage("عرض توضيحي آخر");
?>
مناقشة السرعة
"حسنًا،" قد تقول: "كل هذا رائع. ولكن ألن يؤثر ذلك على سرعة موقعي؟"
لا، من المحتمل أن يصبح موقعك أسرع. سبب واحد بسيط: نظرًا لأنك كمبرمج تهتم بتصميم التطبيق الخاص بك وكتابة التعليمات البرمجية، فإن التعليمات البرمجية الخاصة بك ستكون أكثر كفاءة، وستتعامل مع نفس المهام بشكل أسهل وأسرع. لذلك، يمكنك إضافة سبب آخر إلى قائمة الأسباب المذكورة أعلاه لماذا يجب أن تفكر في استخدام FastTemplate في مشروعك.
إذا كنت تريد فقط تحويل موقع ويب موجود، فقد لا يتم ملاحظة نجاح الأداء. أوصي باستخدام regex buffering في PHP، فهو سيساعد في هذه الحالة. نظرًا لأن FastTemplate يستخدم التعبيرات العادية لكل ماكرو، فسيتم تجميع كل تعبير عادي مرة واحدة فقط وسيكون تأثير السرعة ضئيلًا.