Scriptdd.com

บทความบ้าบ่นของคนทำเว็บ ปี 8

Sixhead Template PHP Template Engine ไทยทำตอนที่ 1

หัวข้อ บทความ แทก PHP

หลายๆคนคงเคยได้ยินผมเปรยๆ เรื่อง Sixhead Template มาบ้างแล้ว มาวันนี้ พี่โป้ sixhead.com ได้ เปิด opensource เจ้าตัว Sixhead Template กันแล้ว ผมเลยจะขอจับมาเล่าสู่กันฟังว่าเจ้า Sixhead Template นี้มันคืออะไร

Sixhead Template คือ Template Engine ดีๆ ที่คนไทยทำใช้เอง ผมต้องเล่าย่อยให้ฟังก่อนว่า Template Engine คืออะไร ?? โดยปกติในการพัฒนา Web Application ด้วย PHP นั้น หากเราแยกการทำงานแล้วอาจจะแบ่งแบบเห็นภาพได้ 2 ทางคือ

1. ส่วนที่เป็น core php script หรือส่วนที่เป็น php ให้ทำงานตามโครงสร้างที่ออกแบบไว้ ให้วนลูป ให้ if ให้ else ต่างๆ
เพื่อให้ Program สมบูรณ์ตามความต้องการที่เราวางไว้
2. ส่วนที่เป็นการแสดงผลให้หน้าตา website สวยงาม ส่วนนี้ก็คือพวก HTML , CSS , Javascript ต่างๆเพื่อประกอบกันเป็น
การแสดงผลผ่านหน้าจอ

ปัญหามันเกิดตรงที่ว่า ไอ้ 2 ส่วนที่ผมบอกเนี่ยในการเขียน PHP ตามปกติ มันมักจะปนกันอยู่ใน Source PHP Script ทำให้เกิดปัญหาตามมาคือส่วนใหญ่แล้ว Web Programmer มักไม่ใช่คนที่ทำ Designer หากแต่เป็นคนละกลุ่มกัน  หลายๆบริษัทอาจจะแบ่งงานกันว่า Designer เมื่อทำ Design Web เสร็จแล้วต้องมีหน้าที่ตัด เป็น HTML เพื่อส่งงานให้ Web Programmer นำไปประกอบกับโครงสร้าง PHP ที่ออกแบบไว้

บางบริษัทก็ให้ Designer ออกแบบอย่างเดียว แล้วให้ Web Programmer มาตัดเอา Design มาประกอบกับ PHP ที่เขียนไว้


พัฒนาจากปัญหาที่พบเจอมา

ปัญหามันเกิดไอ้ตรงเอามาประกอบนี่แหล่ะครับ หลายๆคนที่ Designer เป็นคนประกอบ มักมีปัญหาไม่เข้าใจโครงสร้างของ PHP
หากประกอบด้วย Dreamweaver แล้วบางหน้าอาจจะเห็นว่า PHP มีแค่หมุดอันเดียว (ที่ข้างในอุดมไปด้วย source php หลายร้อยบรรทัด) คราวนี้พอ Desinger ไปลบ code PHP หมุดเดียวนั้นทิ้ง ทาง Web Programmer ก็แทบสิ้นสติ ด่าพ่อล่อแม่กันทุกครั้งไป

หน้าจอของ Dreamweaver ที่แสดงหมุด php ที่ข้างในเต็มไปด้วย php code
หน้าจอของ Dreamweaver ที่แสดงหมุด php ที่ข้างในเต็มไปด้วย php code (ซึ่ง Designer มักไม่ค่อยเข้าใจและพร้อมจะลบทิ้ง)

แนวคิดของ Templeate Engine ก็คือจับส่วนที่เป็น core script php แยกออกจากส่วนที่เป็น html design คือให้ทั้ง PHP Programer ทำงานแยกส่วนกับ Designer อย่างเด็ดขาด ว่ากันง่ายๆคือ

Designer แก้ไขในส่วน .html (แล้วแต่ templete engine จะตั้งนามสกุลอะไรแต่ขอให้เข้าใจว่า มันคือก้อน html นะครับ) ตกแต่งเอาให้สวยงามตามใจชอบ โดยใน .html จะไม่มีส่วนผสมของ Script php อยู่เลย

ทาง Web programmer ไม่ต้องไปยุ่งส่วน .html ให้เขียนแต่ .php โดยให้ดึง .html เรียกออกมาเป็นชิ้นส่วนนำมาแสดงผล

การทำงานลักษณะนี้ทำให้ง่ายต่อการพัฒนาแบบหลายส่วน โดยทาง Web programmer กับ Designer ก็ตกลงการทำงาน อาจจะให้ Web programmer ขึ้นโครง HTML แบบง่ายๆเอาไว้ให้ Designer ตกแต่งเพิ่มเติมเป็นต้น

ซึ่งแนวคิดของ Template Engine นี้ เจ้าใหญ่ๆที่น่าจะรู้จักกันดีก็เช่น

Smarty Template
http://www.smarty.net

TemplatePower
http://templatepower.codocad.com

หลายๆสำนักที่ทำ PHP Template Engine ออกมาก็มีการพัฒนาต่อยอดให้ Template ของตัวเองมีความสามารถเพิ่มขึ้นมากมาย เช่น มีระบบ Cache มีระบบติดต่อฐานข้อมูลมากขึ้น มีระบบ Genarate HTML อะไรวุ่นวายต่างๆกันไป

บางตัวก็ยิ่งใหญ่จนกลายเป็น PHP Framework กันไป

ซึ่งทั้งหมดที่กล่าวมานี้ ร้อยละ ร้อยคือ ฝรั่งทำมาให้เราไปก้มหัวใช้กันไป :P

มาวันนี้คนไทยทำเองใช้เองแล้ว ผมเลยขอนำเสนอ Sixhead Template ครับ :)


Sixhead Template คือผลงานของคนไทยล้วนๆ

เจ้าของผลงานก็คือพี่โป้จาก http://www.sixhead.com หากใครรู้จักคนเก่าคนแก่หน่อยคงพอจำกันได้ เทคนิคการเขียนลักษณะนี้ พี่โป้ก็ใช้มาตั้งแต่สมัยเขียน Perl แล้ว

พอ port มาเป็น PHP ก็เริ่มมีการพัฒนาต่อยอด ต่างๆมากมายและมีการ Fix Bug ให้ตัว Templete สมบูรณ์มากขึ้นงานนี้ พี่โป้ไม่ได้ทำคนเดียวครับ ^^ ต้องเครดิตให้กับ

^LookHin^
http://www.unzeen.com

9AuM
http://www.scriptdd.com

K
http://www.dexdev.com

ปัจจุบัน (ณ ที่เขียนบทความนี้) เป็น Version 5.7 เป็นลิขสิทธ์แบบ BSD License คือใช้งานได้ฟรี พูดง่ายๆคือ คุณสามารถเอา sixhead template ไป include ไว้ใน php script ของคุณได้ทันทีจะแก้ไขดัดแปลงอย่างไรก็ได้ แต่ห้ามลบเครดิตของผู้พัฒนาออกเท่านั้นเองครับ

 


ไป Download มาลองแล้วศึกษาไปพร้อมๆกัน

หน้าจอ Website Sixhead ในหน้ารายละเอียดของ Sixhead Template

เชิญไปกดมาลองกันได้ที่
http://sixhead.com/2008/12/02/sixhead-template-php5-template-engine-for-programmer-and-designer/

เมื่อ Download มาแล้วแตก Zip ออกมาจะเจอ Script เต็มไปหมด อย่าตกใจครับ ส่วนใหญ่จะเป็น ตัวอย่างทั้งนั้นหลักๆที่ต้องใช้คือ

SiXhEaD.Template.php    
เป็นตัว Class ของ Sixhead Template ตัวหลักของ Template Engine   

SiXhEaD.Benchmark.php
เป็นตัว Class ของ Sixhead Benchmark เอาไว้จับดูว่า Script ทำงานใช้เวลาเท่าไร

changelog.txt
เป็น Text File ระบุ Version และรายละเอียดการพัฒนา

license.txt
เป็น Text File ระบุรูปแบบ License

cache-kit.php
เป็นตัว Class เพื่อจัดการเรื่อง Cache ที่ผมเคยเขียนเล่าไปแล้วที่
http://www.scriptdd.com/webtip/php-cache-kit.html

อ่านจบแล้ว พักกันซักครู่ครับแล้ว อ่านต่อ ตอนที่ 2 ได้เลย


Sixhead Template

ตอนที่ 1 เกริ่นนำ
ตอนที่ 2 หัดใช้ display, generate, block, apply
ตอนที่ 3 หัดใช้ sub, get_current_sub(), get_current_sub_total(), block_html และ apply_block

รูปคุณ Read (25,876) Comments (18) 2009-01-21 13:26:45

ความคิดเห็น

เคยใช้แล้ว สุดยอดมากๆ Smarty ชิดซ้ายไปเลย

สมบูรณ์แล้วรึ ว่างๆเดี๋ยวมาเอาไปลอง

รูปคุณ MarMan โดยคุณ MarMan 2009-01-21 23:17:29

Template Engine ... ไม่เคยได้ยินคำนี้มาก่อนเลย

แล้ว Template Engine เหมือนหรือต่างกับ Framework อย่างไรบ้างครับ

;)

รูปคุณ แอ๋ม โดยคุณ แอ๋ม 2009-01-22 00:32:11

Template engines มันก็เป็น libraries หนึ่งใน Framework ก็ได้ด้วย ซึ่งมันทำหน้าที่ประมวลตัว information data ซึ่งเป็นข้อมูลที่ได้จากการประมวลผลต่าง ๆ แล้วเช่นพวก text-file, Database ฯลฯ แล้วเอามาประกอบกับ plain text ที่เราจัด format ไว้ เพื่อประมวลผลเป็น formating text พวก html/xhtml หรืออื่น ๆ

Software Development Framework ทำหน้าที่ เอา code ที่เราเขียน เพื่อให้มันใช้งานต่อไป ซึ่งด้านในเนี่ยมันประกอบไปด้วย libraries ต่าง ๆ รูปแบบการพัฒนาตัวซอฟต์แวร์ที่วางไว้ให้แล้ว เราไม่ต้องคิดส่วนนี้เพิ่ม บางครั้งอาจจะมี tools ต่าง ๆ ช่วยในการพัฒนาเช่น deployment tools หรือพวก unit-test ซึ่ง Template engines ก็อาจจะเป็นส่วนหนึ่งของ Software Development Framework ด้วยเช่นกัน

รูปคุณ Ford AntiTrust โดยคุณ Ford AntiTrust 2009-01-22 01:01:02

น่าสนใจครับ ทั้งๆที่ยังอ่านไม่เข้าใจดี แต่จะพยายามครับท่าน

รูปคุณ centuryboy1938 โดยคุณ centuryboy1938 2009-01-22 08:29:35

ขอบคุณมากครับ

อย่างนี้น่าลองจริงๆ เสริมความรู้เพิ่มไปอีก

รูปคุณ ฉุย โดยคุณ ฉุย 2009-01-22 08:33:11


เว็บเพื่อความคิดสร้างสรรค์และแบ่งปันครับ www.narongrit.net 
และขอฝากเว็บโปรโมทด้วยครับ www.diggbookmark.com 
ขอบคุณเว็บ scriptdd แห่งนี้ที่เปิดโลกทัศน์ให้กว้างกว่าเดิมครับ

เยี่ยมไปเลยครับ ของใหม่ คนไทยทำด้วย

เคยไปทำโปรแกรมต่อจากคนอื่นแล้ว งงงง? อะไรเนี่ย! มีแต่ html หา phpไม่เจอ
กว่าจะรู้จักก็งมอยู่นานครับ

ไว้จะลองเอาไปใช้ครับแล้วจะมารายงานผล

รูปคุณ Kussx โดยคุณ Kussx 2009-01-22 09:51:11

ต้องขอบคุณพี่อ้ำ ที่เขียนได้ละเอียดจริงๆ
สำหรับใครยังไม่มีเครื่อง test ให้เข้าไปที่ link แล้วดูตรง See in action

ใช้ง่ายมากครับไม่ยากอย่างที่คิด
ไว้ถ้าผมขยันจะเขียนตัวอย่างใช้งานจริงมาให้ดูกัน

รูปคุณ Pipo โดยคุณ Pipo 2009-01-22 11:45:04

อ่านแล้วน่าสนใจมาก ถ้าเป็นอย่างนี้นามสกุลของfile ที่แสดงหน้าเว็บก็จะเป็น html ตลอดใช่มัยครับ แต่ตัวfile php ของเราจะส่งค่าต่างๆ ในการแสดงผลไปที่ file html ผมเข้าใจถูกต้องมัยครับ(ถ้าไม่ รบกวนอธิบายหน่อยครับ) ถ้าถูกตามนี้แสดงว่าจะได้รับผลประโยชน์เรื่องของ search มากตามไปด้วย เพราะพวกนี้ไม่ชอบ php เป็นผลงานที่น่าภูมิใจของคนไทยจริงๆ

รูปคุณ eosman โดยคุณ eosman 2009-01-22 14:41:39

เรื่องนามสกุล file ไม่เกี่ยวครับ ถ้าอยากให้ออกมาเป็นนามสกุลอะไร ต้องไปใช้ mod rewrite ทำเอาครับ

อย่างของ scriptdd ก็ใช้ mod rewrite ทำ

http://www.scriptdd.com/webtip/apache-mod-rewrite-easy-url.html



รูปคุณ 9AuM โดยคุณ 9AuM 2009-01-22 15:18:34


http://www.servdd.com Web Hosting คุณภาพบริหารงานโดยนายอ้ำ
http://www.wp4seo.com wp4SEO ระบบช่วยบริหาร Wordpress Blog จำนวนมาก
http://www.welovetopup.com weLoveTopup เติมเงินออนไลน์ให้ส่วนลดมากที่สุดในตลาด

โอ้ววว ผมกำลังทำ cms ส่วนตัวอยู่ครับ ตอนนี้ก็ทำพวก MC เหลือแต่ V (หลักทฤษฎี MCV ) ครับ แหม อย่างนี้ท่าจะเสร็จเร็ว ขอหยิบยืมไปใช้ด้วยคนครับ อิอิ

รูปคุณ P@W โดยคุณ [email protected] 2009-01-22 15:59:06


ทุกอย่างเกิดจากเหตุ และปัจจัย ไม่ใช่อยู่ดี ๆ ก็เกิดขึ้น :: สร้างฝันบนจินตนาการ

www.konkeanweb.com , www.prawee.com ,www.tct15.com ,www.thaiagro.com

 

เขียนงานแบบ MVC ทำๆไปแล้วหลงตัวเอง

สุดท้ายพึ่ง framework ที่ออกแบบมาสำหรับ MVC จะดีที่สุด

cms ส่วนตัวนี่ น้องๆหลายคนเชียร์ให้เขียนแข่งกับเมืองนอกอยู่เหมือนกัน

สงสัยต้องกระโดดเข้าสนามนี้ด้วยแล้วสิเนี่ย

รูปคุณ 9AuM โดยคุณ 9AuM 2009-01-22 16:13:21


http://www.servdd.com Web Hosting คุณภาพบริหารงานโดยนายอ้ำ
http://www.wp4seo.com wp4SEO ระบบช่วยบริหาร Wordpress Blog จำนวนมาก
http://www.welovetopup.com weLoveTopup เติมเงินออนไลน์ให้ส่วนลดมากที่สุดในตลาด

เคยไปอ่าน Smarty Template Engine เมื่อหลายปีก่อน พบว่ามึนตึ้บ เนื่องจากเป็นเด็กคอมที่โง่คอมพอควร ชอบออกแบบมากกว่า ครั้งแรกที่เจอ Expression Engine เลยชอบมาก เพราะทำอะไรง่ายนัก อยากได้อะไร ก็ให้ระบบมันพ่นออกมา / และเมื่อเจอ UNB (Unclassified NewsBoard) ก็ชอบเช่นกัน ปรับแต่งง่ายดี

แต่แล้วเมื่อมาเจอ Wordpress นักออกแบบที่ชุ่ยอย่างผมกลับชอบที่สุด เพราะไม่ได้ถือว่า Template เป็นแต่ .html ที่รอการ parse แต่ตัวเองก็ใส่โค้ดมั่วๆ ไปได้ด้วย

โลกที่เคยแสวงหาความสมบูรณ์แบบในลักษณะของ Template Engine เลยเปลี่ยนมาเป็นโลกที่ไม่สมบูรณ์ มั่วมั่ง สละสลวยมั่ง แต่งานออกเร็วดี

เมื่อเจอเพื่อนที่เขียน PHP Framework มาราว 10 ปี parse XML ได้สมบูรณ์แบบ เล่นทำตัวเป็นเหมือนพระเจ้าหรือ OS ก็เลยวิวาทะกับมันพอควร แล้วก็บอกว่า "แหะ แหะ ขอกระผมทำง่ายๆ โง่ๆ ต่อไปละกัน แทรก Template ด้วย แทรก php ด้วยละกันนะ"

ชื่นชมท่านมั่กๆ ขอให้สู้ต่อไป อย่าไปฟังเสียงนกเสียงกาแบบผมแล้วท้อไปเสียก่อน :)

รูปคุณ iMenn โดยคุณ iMenn 2009-01-22 21:00:24

พี่ 9AuM เขียนละเอียดดีจังต้องติดตามๆ

รูปคุณ TaTump โดยคุณ TaTump 2009-01-22 21:16:05


หนทางสู่ความลำบากแสนสบาย หนทางสู่ความสบายแสนลำบาก

www.memo8.com | www.gump.in.th

 

ยอดเยี่ยมมากครับ อนาคตอันใกล้ผมคงจะได้เห็น PHP Framework ฉบับไทยทำด้วยสิเนี่ย

รูปคุณ Edward โดยคุณ Edward 2009-01-26 10:45:37

อ่านแบบ ซุ่ม ๆ แล้วจะไปทดลองทำดูบ้าง ....

เอาว่ะ ช่วงนี้เจ้านาย ให้เล่น แต่ CMS นอก ที่ งง เป็นเป็ด

ของลอง ตัวนี้หน่อย เผื่อ จะเอามา พัฒนางานได้ ต่อไปอีก (อิอิ เพื่อ โบนัส)

รูปคุณ โจ้ โดยคุณ โจ้ 2009-02-04 22:00:24

พี่อั้มลงมาเอง ก็ดีเช่นกันครับ ผมเชียร์อีกแรง จะได้ประกาศอิสระภาพสักที ถ้าว่างหน่อยก็สร้างภาษาคอมพิวเตอร์ด้วยก็ดีครับพี่

รูปคุณ P@W โดยคุณ [email protected] 2009-02-17 14:28:20


ทุกอย่างเกิดจากเหตุ และปัจจัย ไม่ใช่อยู่ดี ๆ ก็เกิดขึ้น :: สร้างฝันบนจินตนาการ

www.konkeanweb.com , www.prawee.com ,www.tct15.com ,www.thaiagro.com

 

ขอบคุณครับ ได้เป็นสมาชิกปุ๊บได้ของดีปั๊บเลย

รูปคุณ กอล์ฟ โดยคุณ กอล์ฟ 2011-11-13 16:34:31

ฟีเจอร์น้อยไป ทำได้แค่แทนที่ string กับ block พื้นๆ
loop ใน template ก็ไม่ได้ เอาเข้าจริงๆ ถ้าจะทำอะไรซับซ้อนมันก็ต้องพึ่งโปรแกรมเมอร์เยอะอยู่ดี แทบไม่ช่วยอะไรดีไซเนอร์เลย
และสุดท้าย ไม่มีระบบ cache ทำให้ทำงานช้า ต้อง parse ตลอด

อย่าอวยกันเองให้เวอร์เลยครับ อายเค้า

รูปคุณ ยังต้องฝึกอีกนะหนู โดยคุณ ยังต้องฝึกอีกนะหนู 2011-11-16 08:11:33

ร่วมแสดงความคิดเห็น



ขอความกรุณา ปัญญาชน ทุกๆท่าน รณรงค์การใช้ภาษาไทยให้ถูกต้อง
กรุณา ลงความคิดเห็นโดยใช้ภาษาไทยให้เป็นภาษาไทย งดการใช้ภาษาวัยรุ่น,
แอ๊บแบ๊ว บอกตรงๆปัญญาอ่อน !! Admin นั่งอ่านแล้วปวดหัว

เข้าระบบ


จำไว้ด้วยนะจ้ะ

สมัครสมาชิก
ลืมรหัสผ่าน

บทความล่าสุด

Gallery

Tags

Web2.0 Notebook เฟรม OEM Yahoo Music Testdrive Honda MSN Security PHP ROM Instant Messenger Airnet Freeware Gallery TV Mobile Home API Lenovo SMS bicycle Internet Explorer Android Yamaha How to HTML Hacker Software Linux

อื่นๆ ...

เพื่อนบ้าน

สถิติส่วนตัว

คลิกรับ Feed สิจ๊ะ

TwitterCounter for @9aum

Scriptdd.com | ctdd Version 3.0 ติดต่อฐานข้อมูลทิ้งสิ้น 6 ครั้งใช้เวลาประมวลผล 0.0476 วินาที
โปรแกรมโดย 9AuM | ออกแบบโดย styleshout