หลังจากที่ผมหายไปนานมากประมาณครึ่งเดือนก็เพราะผมนั่งแก้วิฤตโครงการส่วนตัวที่ผมทำอยู่หลายอาทิตย์ ซึ่งผมก็นั่งทำอยู่นานดังคำว่า ไม่เป็นไร พังก็สร้างใหม่ และตอนนี้ก็เริ่มโคเอละ จากวิฤตครั้งนี้ทำให้เสียเงินไปหลายบาทกันเลยทีเดียว และวันนี้ผมก็เริ่มว่างก็เลยมาดูว่าผมยังค้างบทความอะไรอยู่ เลยมาเขียนต่อดีกว่า เอาละบทความนี้เป็นบทความต่อจากครั้งก่อน? ภาษา PHP : Smarty Template Engine ครั้งนี้ก็จะเป็นการติดตั้งและการใช้งานเบื้องต้น
ขั้นแรกคือการโหลดตัว script smarty ก่อนจากเว็บ smarty.net
เมื่อโหลดเสร็จแล้วก็ทำการแต่ไฟล์ จะได้ไดเรกทอรี Smarty-xxx ( xxx คือหมายเลขเวอร์ชัน) จากนั้นก็นำไปวางที่ไดเรกทอรีที่เราต้องการเรียกใช้
ซึ่งไดเรกทอรีของผมที่ต้องการใช้คือ testsmarty ก็นำไปวางจะได้เมื่อในรูป
Smarty template engine นั้นจำเป็นใช้ไดเรกทอรี 2 อันเพื่อสำหรับ complie และอีกอันเอาไฟล์เก็บไฟล์ .tpl ที่เราสร้างขึ้นดังนั้นผมจะสร้าง directory 2 อันคือ template, template_c
ในกรณีที่เราใช้ server เป็น unix chmod 777 หรือ 755 เพื่อที่จะอนุญาตให้มันเขียนไฟล์ลงใน template_c ได้
การติดตั้ง smarty ก็ถือว่าเสร็จสิ้นต่อไปเป็นการใช้งาน
ขั้นแรกเราก็สร้างไฟล์ php ที่จะใช้งาน smarty ขึ้นมาโดยผมให้ชื่อว่า testsmarty.php โดยมีโค้ดดังนี้
[sourcecode language=”php”]
setTemplateDir(‘template’);
$smarty->setCompileDir(‘template_c’);
$smarty->assign(‘website’, ‘Thaicoding.net’);
$smarty->display(‘index.tpl’);
?>
[/sourcecode]
จากนั้นเราก็สร้างไฟล์ smarty template ในไดเรกทอรี template ชื่อว่า index.tpl โดยมีโค้ดดังนี้
[sourcecode language=”html”]
Welcome, {$website}!
[/sourcecode]
เมื่อเขียนโค้ดทั้ง 2 ไฟล์เสร็จแล้วก็ลองรันไฟล์ testsmarty.php ดูก็จะได้ผลลัพธ์ดังรูป
โดยโค้ดของ testsmarty.php มีหลักการทำงานดังนี้
require(‘Smarty-3.0.6/libs/Smarty.class.php’);
เป็นการเซ็ต ไดเรกทอรี smarty เพื่อที่เราจะได้เรียกใช้ได้ ต่อมาคือการสร้าง object smarty ซึ่งมีโค้ดดังนี้
$smarty = new Smarty(); ?ต่อมาคือการ set directory complie และ directory template โดยใช้ 2 คำสั่งต่อไปนี้
$smarty->setTemplateDir(‘template’);
$smarty->setCompileDir(‘template_c’);
หลังจากนั้นก็จะเป็นการกำหนดค่าตัวแปรจะใช้คำสั่ง
$smarty->assign(‘website’, ‘Thaicoding.net’);
ซึ่งผมมีการกำหนดชื่อตัวแปร website ให้มีค่าเท่ากับ Thaicoding.net นั้นเองหลังจากนั้นก็เรียกแสดงผลจากไฟล์ template โดยใช้คำสั่ง
$smarty->display(‘index.tpl’);
สุดท้ายเราก็มาดูไฟล์ index.tpl ที่อยู่ใน directory template สั่ง บรรทัดที่มีคำสั่ง
Welcome, {$website}! จะเห็นว่า smarty จะใช้ {} ในการเปิดปิดคำสั่งซึ่งเราได้กำหนดค่าให้ตัวแปร website จากไฟล์ testsmarty.php ไว้แล้ว
ก็ถือว่าติดตั้ง smarty template เสร็จสิ้นและสามารถใช้งานได้ส่วนวิธีการใช้อื่นๆไว้มีโอกาสผมจะมาเขียนบทความใหม่