Welcome! My name is ArmNo. I'm computer engineering student of Chiang Mai University, Thailand. This blog is about my internship program summer 2009. Enjoy!

Introduction to Tequila Framework

Wednesday, June 3rd, 2009

Tequila Framework เป็น PHP Framework แบบ MVC ที่พัฒนาโดยบลูบอล กรุ๊ป มีจุดเด่นคือสามารถพัฒนา application ได้อย่างรวดเร็ว มีโครงสร้างที่แข็งแกร่ง และง่ายต่อการ maintenance ซึ่งประกอบด้วย 2 ส่วนหลักคือ Tequila Core เป็นไฟล์หลักของ framework และอีกส่วนหนึ่งคือ Tequila Application ซึ่งก็คือ application ที่เราต้องการพัฒนาขึ้นมา โดยทั้งสองส่วนจะอยู่ขนานกัน (บน file server) และจะกำหนด path ของกันและกันได้ที่ configuration file ของ application

ข้อดีของ Tequila Framework

  • มี Page Generator ให้ โดยสามารถสร้างเพจที่เกี่ยวข้อง หรือไม่เกี่ยวข้องกับฐานข้อมูล หรือแม้กระทั่งหน้าเปล่าๆได้ ทำให้ช่วยประหยัดเวลาในการเขียนโค้ดไปได้มาก
  • มีฟังก์ชั่นและคลาสพร้อมให้เรียกใช้มากมาย ซึ่งส่วนมากเป็นฟังก์ชั่นและคลาสที่มักจะได้ใช้บ่อยๆในการเขียนโปรแกรม การเรียกใช้ฟังก์ชั่นจาก Framework ทำให้ลดจำนวนโค้ดจากหลายสิบบรรทัด เหลือเพียงหนึ่งหรือสองบรรทัดได้
  • เรียกข้อมูลมาแสดงผลได้อย่างง่ายดาย
  • สามารถเข้าถึงข้อมูลในฐานข้อมูลได้ ด้วยโค้ดเพียงหนึ่งบรรทัด
  • มี Packages ให้เรียกใช้สำหรับโค้ดส่วนที่ต้องใช้บ่อยๆ
  • สามารถนำโค้ดกลับมาใช้งานใหม่ได้เรื่อยๆ
  • ใช้กับฐานข้อมูลได้มากชนิด เช่น MySQL, MSSQL, Oracle, AdoDB, MS Access, SQLite เป็นต้น

ส่วนประกอบที่สำคัญของ Tequila Application

· Model เป็นส่วนที่ทำหน้าที่ติดต่อกับข้อมูล เป็นตัวเรียกข้อมูลที่จะไปแสดงผล ประกอบไปด้วยคำสั่งในการเรียกข้อมูลจากฐานข้อมูล (ซึ่ง Model สามารถเข้าถึงฐานข้อมูลได้โดยใช้ DAO หรือไม่ใช้ก็ได้) และ Business Rules

· View เป็นส่วนที่ทำหน้าที่แสดงผลข้อมูลออกไปยังหน้าจอผู้ใช้ และจัดการเกี่ยวกับ template โดยจะรับข้อมูลจาก controller หรือจะเรียกขอข้อมูลเองไปที่ Model เลยก็ได้

· Controller เป็นส่วนที่ทำหน้าติดต่อกับ user ผ่านทาง user interface จะเป็นตัวรับคำสั่งจาก user ว่าต้องการข้อมูลอะไร จากนั้น controller จึงเป็นตัวสั่ง model ให้ค้นหาข้อมูล แล้วสั่งให้ view แสดงผลข้อมูลนั้น

· DAO หรือ Data Access Object เป็น object ที่จะเข้าไปจัดการกับข้อมูลในฐานข้อมูล เป็นคลาสที่มีฟังก์ชั่นเกี่ยวกับการเข้าถึงข้อมูลไว้มากมาย ทำให้ไม่ต้องเขียนคำสั่งเอง โดยสามารถเลือกชนิดของข้อมูลที่จะ return ไปได้ ซึ่งปกติแล้ว DAO จะ return VO

· VO หรือ Value Object เป็น object ของข้อมูลที่ return มาจาก DAO

· Language files เป็น PHP file ที่เก็บ Strings ต่างๆที่ใช้ใน application

· Template files เป็นส่วนที่เก็บ html file, javascript file, และ css file ที่ใช้ใน template ซึ่ง Tequila Framework สนับสนุนการใช้ template engine ที่มีชื่อว่า template power

โครงสร้างไฟล์ของ Tequila Application

ดังที่ได้กล่าวไปข้างต้น Tequila Framework มีลักษณะโครงสร้างที่แข็งแกร่ง และง่ายต่อการบำรุงรักษาระบบ เนื่องจาก Tequila Application มีการเก็บไฟล์แยกเป็นส่วนๆอย่างชัดเจน ดังภาพ

(รูปจาก http://sites.google.com/site/phptequila)

การมีโครงสร้างที่ชัดเจนเช่นนี้ ทำให้สามารถบำรุงรักษาระบบได้อย่างรวดเร็ว เพราะใครก็ตามที่รู้โครงสร้างไฟล์ของ Tequila ก็จะสามารถเข้าไปแก้ปัญหาได้อย่างถูกจุดอย่างรวดเร็ว