เรียนรู้วิธีการ Install และ Update คำสั่ง SQL ใน Joomla

แชร์ ความรู้ในการ พัฒนา Joomla Component Extension Module Plugin

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21154
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

เรียนรู้วิธีการ Install และ Update คำสั่ง SQL ใน Joomla

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

Joomla เป็นระบบ CMS ที่สามารถติดตั้งส่วนเสริมต่างๆ เพื่อเพิ่มความสามารถให้กับระบบ โดยส่วนเสริมบางตัวจะมีส่วนจัดการและจัดเก็บข้อมูลลงในฐานข้อมูล ในบทความนี้เราจะมาเรียนรู้วิธีการที่ระบบ Joomla ใช้ในการจัดการตารางของส่วนเสริม เวลาที่มีการติดตั้งใหม่หรือมีการอัพเดทเปลี่ยนแปลงโครงสร้างของตาราง ภายในโค้ดของระบบมันมีวิธีจัดการยังไงบ้าง สามารถศึกษาได้จากในบทความนี้ เพื่อใช้เป็นแนวทางหากต้องการประยุกต์ใช้ในระบบอื่นๆ

โดยในบทความนี้จะเน้นแค่ส่วนที่เกี่ยวข้องกับการ Install และ Update คำสั่ง SQL เท่านั้น

เริ่มต้นเวลาติดตั้งส่วนเสริมใหม่เข้าไปในระบบของ Joomla จะใช้ไฟล์ XML ในการอ่านข้อมูลเกี่ยวกับส่วนเสริม หากมีการใช้ตารางข้อมูลในไฟล์ XML ก็จะบอกตำแหน่งโฟลเดอร์ที่เก็บคำสั่ง SQL ไว้

ตัวอย่างไฟล์ XML
หมายเลข 1 ไฟล์ที่เก็บคำสั่ง SQL สำหรับสร้างตาราง กรณีติดตั้งส่วนเสริมใหม่
หมายเลข 2 ไฟล์ที่เก็บคำสั่ง SQL สำหรับลบตาราง กรณีถอนการติดตั้ง
หมายเลข 3 โฟลเดอร์ที่เก็บคำสั่ง SQL สำหรับอัพเดทตาราง กรณีอัพเดทเวอร์ชั่นของส่วนเสริม

Joomla Developing Knowledge-1.png
Joomla Developing Knowledge-1.png (235.46 KiB) Viewed 687 times


ติดตั้งส่วนเสริมใหม่
เมื่อติดตั้งส่วนเสริมใหม่ ระบบจะอ่านตำแหน่งไฟล์ของคำสั่ง SQL สำหรับติดตั้ง จากไฟล์ XML

ตัวอย่างไฟล์ install.sql
Joomla Developing Knowledge-1.png
Joomla Developing Knowledge-1.png (290.53 KiB) Viewed 687 times

ในส่วนโค้ด ถ้าเรารู้ตำแหน่งของไฟล์แล้ว ใช้คำสั่ง file_get_contents(); อ่านข้อมูลในไฟล์ แล้วมาใส่ในคำสั่ง Query เข้าฐานได้เลย

หลังจาก Query คำสั่ง SQL เข้าฐานข้อมูลเรียบร้อยแล้ว ใน Joomla จะมีตารางสำหรับเก็บข้อมูลเวอร์ชั่นของส่วนเสริมไว้

ตัวอย่างตาราง #__schemas
Field extension_id จะไปเชื่อมกับข้อมูลส่วนเสริมอีกทีว่าเป็นตัวไหน
ส่วน Field version_id จะเก็บเฉพาะ version ที่มีโครงสร้างตารางเปลี่ยนแปลง ข้อมูลนี้จำเป็นเมื่อมีการอัพเดทโครงสร้างตารางของส่วนเสริม
Joomla Developing Knowledge-1.png
Joomla Developing Knowledge-1.png (43.47 KiB) Viewed 687 times


อัพเดทส่วนเสริม
เมื่อมีการอัพเดทส่วนเสริมแบบเปลี่ยนโครงสร้างตาราง ต้องมีการสร้างไฟล์อัพเดท SQL ไว้ในโฟลเดอร์ และตั้งชื่อตามเวอร์ชั่นที่อัพเดท

ตัวอย่าง เช่น อัพเดทเวอร์ชั่น 2.15.32 ต้องตั้งชื่อไฟล์ว่า 2.15.32.sql และใส่คำสั่ง SQL ที่อัพเดทเข้าไป
Joomla Developing Knowledge-1.png
Joomla Developing Knowledge-1.png (40.24 KiB) Viewed 687 times

ตอนอัพเดทระบบจะดูตำแหน่งโฟลเดอร์ใน XML และเช็คเวอร์ชั่นใน XML เทียบกับ ชื่อไฟล์ SQL ที่อยู่ในโฟลเดอร์
จากนั้นระบบจะเช็คกับตาราง #__schemas อีกที เงื่อนไขคือ เวอร์ชั่นที่อัพเดทมาต้องมากกว่า เวอร์ชั่นที่อยู่ในตาราง ถึงจะทำคำสั่งในไฟล์อัพเดท
เพื่อป้องกันไม่ให้ทำคำสั่งซ้ำอีก และหลังจากอัพเดทเรียบร้อย ต้องมาอัพเดทเวอร์ชั่นในตารางนี้ด้วย



ถอนส่วนเสริมออก
ระบบจะอ่านตำแหน่งไฟล์ของคำสั่ง SQL สำหรับลบตารางออก จากไฟล์ XML

ตัวอย่างไฟล์ uninstall.sql
Joomla Developing Knowledge-1.png
Joomla Developing Knowledge-1.png (111.98 KiB) Viewed 687 times


จากทั้ง 3 ส่วน ตั้งแต่ติดตั้ง อัพเดท และถอนส่วนเสริมออก การจัดการคำสั่ง SQL ไม่ได้ยุ่งยาก เพราะใน Joomla จะใช้วิธีให้ใส่คำสั่ง SQL แบบสำเร็จรูปมาเลย ทางระบบของ Joomla ทำหน้าที่แค่หาตำแหน่งไฟล์ และนำคำสั่ง SQL มา Query เข้าระบบอย่างเดียว แต่ในขั้นตอนที่ต้องอัพเดทโครงสร้างจำเป็นต้องมีตารางมาเก็บข้อมูลเวอร์ชั่นสำหรับเช็คโครงสร้างอีกที เพื่อป้องกันไม่ให้ระบบทำคำสั่งซ้ำ หรือ ทำคำสั่งของเวอร์ชั่นเก่า เพราะในโฟลเดอร์ Update SQL ของระบบ Joomla ปกติจะเก็บโครงสร้างไว้ทุกเวอร์ชั่นอยู่แล้ว เพราะฉะนั้นจะมีหลายไฟล์ในโฟลเดอร์นี้ สุดท้ายจากบทความนี้จะช่วยให้ผู้พัฒนาส่วนเสริมใน Joomla เข้าใจการทำงานส่วนนี้ได้ดีมากขึ้น และสามารถประยุกต์ใช้กับระบบอื่นได้
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 1