บทนำช่วงนี้มีหลายคนถามผมมาเกี่ยวกับเรื่องของ "Template Engine" หลายคน ก็เลยคิดว่าน่าจะทำเป็นบทความเล็กๆ ซะหน่อย เพราะถ้าเป็น บทความใหญ่ๆ รับรองเรื่องมันยาว แน่นอน
พูดถึง Template Engine นั้นมีหลายตัวมาก เลยทั้ง bTemplate, FastTemplate, TemplatePower, TBS (TinyButStrong), PatTemplate, etc.
เรียกได้ว่ามีมากมายเยอะแยะไปหมด แต่ที่ชนะใจผมและ คนทั่วโลก ทิ้งห่างแบบไม่เห็นฝุ่น รวมทั้งได้รับการรับรองจาก PHP โดยตรงก็คือ "Smarty Template Engine" นั่นเอง ด้วยความที่ตัวมันทำงานได้ยืดหยุ่น มีคนใช้เยอะ ทำให้มีการแชร์ข้อมูลมาก พัฒนาอย่างต่อเนื่อง ที่สำคัญ Absolutely Free ทำให้หลายๆ คนเลือกที่จะใช้มันสำหรับ พัฒนาโปรเจคใหญ่ๆ วันนี้ผมก็เลยจะมาแนะนำคร่าวๆ ถึง PEAR ตัวนี้สักหน่อย
ประโยชน์ของ Template Engineประโยชน์ของระบบ Template นั้นมีมากมายเลยล่ะ โดยผมแบ่งออกเป็น ข้อใหญ่ๆ ได้ดังนี้
1.สามารถแยก Code ออกจาก Design ได้ ทำให้การทำงานทั้ง 2 ฝั่งไม่ต้องรองานกัน
2.สามารถทำระบบ แยก Theme แบบหลายๆตัว ได้เป็นอย่างดี (นึกถึงระบบ WP)
3.ทำให้โคดสั้นลงเพราะไม่จำเป็นต้องมาแทรก html ใดๆ ในหน้า Code และสะดวกต่อการ debug เพราะไม่ต้องมานั่งไล่โคดไป ดู html ไป
4.สามารถพัฒนาต่อได้ง่ายในกรณี สับมือกันทำหรือ ต่อยอด เพราะโคดที่ต้องแก้ มีแค่ภาษาโปรแกรมมิ่ง
5.ไม่ต้องเรียกตัวแปร ซ้ำซ้อน ในกรณีที่ มีการใช้ตัวแปร นั้นๆ หลายจุด
6.มี plugins เสริมต่างๆ ทำให้ลดเวลาในการพัฒนา เช่น (cache, thumnail, captcha, paging, tags, ajax, calendar)
7.สามารถพัฒนา Software ให้ดูเป็นมืออาชีพ และโคด มีความสวยงาม
ความเข้าใจเบื้องต้นการใช้งานนั้นก็ไม่ยากเลยครับ ก่อนอื่นให้ดาวน์โหลด โปรแกรมจากที่นี่
Smarty Download 
ก่อนจะทำงานกับ Smarty เราจะต้องมีความเข้าใจระบบของมันสักเล็กน้อย การทำงานของ Smarty นั้น เป็นระบบที่ อ้างอิง Template จาก โฟลเดอร์
/templates/
เมื่ออ่านค่าได้ทั้งหมดแล้วจะถูก Compile ออกมาเป็น php เก็บไว้ในโฟลเดอร์
/templates_c/
ซึ่งโฟลเดอร์พวกนี้เราสามารถแก้ตำแหน่ง ของมันได้ ที่ต้องทำแบบนี้เพราะจะได้ลดเวลา ในการอ่านข้อมูลและ แสดงผล ไม่ต้องมาทำซ้ำทุกๆ ครั้ง อันนี้เป็นจุดที่ผมคิดว่าเหนือกว่า Template Engine ยี่ห้ออื่นๆ
รูปแบบการใช้งานเบื้องต้น<!-- ไฟล์ test.php -->
<?php
include ('smarty/Smarty.class.php'); // include ตาม path
$smarty = new Smarty(); // เรียก Obj
$smarty->compile_check = true; // ตั้งค่า ว่าจะให้ re-compile หรือไม่ ถ้าระบบนิ่งแล้ว ตังเป็น false ไปเลย จะช่วยลดการใช้งาน ทรัพยากรระบบได้
$smarty->assign('title', 'Introduce Smarty'); // ทดลอง assign ค่า แบบ single
$smarty->assign(array('charset'=>'utf-8', 'keywords'=>'1, 2, 3')); // ทดลอง assign ค่าแบบ multiple
$smarty->assign('years', array('2004', '2005', '2006')); // ทดลอง assign ค่า แบบ array
$smarty->display('index.tpl'); // อันนี้จะเป็นการเรียกไฟล์ที่ อยู่ใน /templates/index.tpl มาใช้งาน
?>
<!-- ไฟล์ /templates/index.tpl -->
<html>
<head>
<title>{$title}</title>
<meta http-equiv="content-type" content="text/html; charset={$charset}" />
<meta name="keywords" content="{$keywords}" />
</head>
<body>
{foreach from=$year item=x}
{$x}<br />
{/foreach}
</body>
</html>
-----------------------------------------------------
เอาละครับ นี่เป็นแค่บทเรียกน้ำย่อย ยังไม่ได้ เข้าลึกถึงรายละเอียด 1 ใน 100 เลย Template Engine ตัวนี้มีความสามารถแบบ สุดๆ ไปเลยครับ จะค่อยๆ มาเขียนถึงการใช้งานในระดับ ต่างๆ อีกที ถ้าใครใจร้อนแนะนำให้ โหลด manual มาอ่านก่อนได้ที่
http://smarty.php.net/distribu...anual/en/Smarty-2.6.7-docs.chm 
ปล.การเขียนโปรแกรมนั้นไม่ได้ยากเพียงแต่คุณต้องให้เวลากับมัน