Template Engine ก็คือ PEAR ที่เอาไว้ใช้สำหรับเวบที่มีโครงสร้างซับซ้อน ตัวโคดมีจำนวนมาก เพื่อให้สะดวกแก่การแก้ไข ทั้ง Graphic Designer และตัว Programmer เอง จึงได้แยกโคดออกจาก การ design ซะ ตัวอย่างหลักๆ ก็เช่น TWG นี่ไงครับ ที่มีการแยกโคด ออกจากโปรแกรม หลังจากนั้นเอามารวมกัน แล้วค่อย Gen ออกมา
ตัว Template Engine เองก็มีหลายยี่ห้อหลายเจ้า และแบ่งออกเป็นหลักๆ ได้ 2 ประเภทคือ แบบที่ ต้อง compile คือแบบนี้ ตัว Template engine จะอ่านโคดเราและ theme เราและ Compile ออกมา เพื่อที่จะ ทำการ Render มาแสดงให้เราดู เช่น Smarty
อีกแบบคือแบบที่ไม่ต้อง Compile คือ Render ทันทีไม่มีการสร้างการทำอะไรต่ออีกแล้ว เช่น Savant2
ลักษณะการทำงานของ PEAR พวกนี้คือ
อ่านโคด->อ่าน Theme->แทนค่า->(Compile*)->แสดงผล
คำสั่งที่มักจะเห็นบ่อยๆในโคดทีี่มีการใช้งาน Template Engine
$this->assign('var', $var);
$this->display('theme', 'theme.tpl')
แท๊กต่างๆ ที่มักจะอยู่ใน Template
{var} หรือ {$var} หรือ <%var%> และอื่นๆ
Template Engine เองก็มีหลายยี่ห้อให้เลือกใช้ เช่น
http://smarty.php.net/ http://phpsavant.com/ http://templatepower.codocad.com/ http://www.massassi.com/bTemplate/ http://www.thewebmasters.net/php/FastTemplate.phtml http://pear.php.net/manual/en/packages.templates.it.php http://modelixe.phpedit.com/ http://pukomuko.esu.lt/phemplate/ http://nutbar.chemlab.org/ http://sourceforge.net/projects/phplib http://www.ultratemplate.com/ http://www.yapter.com/ ชอบตัวไหนก็เลือกใช้ เอาแต่แนะนำ 3 ตัวแรก
อันนี้เป็นผลการทำ benchmarks จากบางเวบ (แต่ผมไม่เชื่อมัน)
http://www.massassi.com/bTemplate/benchmarks/ จบเท่านี้แหละ !!!