Joomla เป็นระบบบริหารจัดการเนื้อหาบนเว็บไซต์ ซึ่งขณะนี้ได้พัฒนามาถึงเวอร์ชั่น 3.8.10 แล้ว และในช่วงหลายเดือนที่ผ่านมาทางทีมพัฒนาได้ปล่อยให้ดาวน์โหลดตัวทดสอบของเวอร์ชั่น 4 โดยถือว่าเป็นซี่รี่ย์ต่อจากรุ่น 3.x มีการพัฒนาปรับปรุงและเปลี่ยนแปลงครั้งใหญ่ทั้งในเรื่องของการแสดงผลและระบบโค้ดภายใน อาจจะส่งผลให้ส่วนเสริม (Extenstion) บางตัวที่ทำงานบน 3.x อาจจะไม่สามารถใช้งานต่อได้ในเวอร์ชั่น 4 ทำให้กลุ่มของนักพัฒนาส่วนเสริมจำเป็นต้องเตรียมตัวสำหรับการปรับไฟล์และโค้ดต่างๆ ของตัวเอง เพื่อให้สามารถทำงานได้เวอร์ชั่น 4 ตัวสมบูรณ์ถูกปล่อยออกมา
สำหรับในบทความนี้จะมาเปรียบเทียบโครงสร้างของ Component ทั้ง 2 เวอร์ชั่นว่ามีการเปลี่ยนแปลงไปมากน้อยแค่ไหน โดยจะใช้ Joomla เวอร์ชั่น 3.8.10 เปรียบเทียบกับเวอร์ชั่น 4 Alpha 3 และเลือกเป็น Component ชื่อ Users ซึ่งเป็นส่วนจัดการผู้ใช้งานในระบบ Joomla
โครงสร้างไฟล์ เวอร์ชั่น 3 โครงสร้างไฟล์ เวอร์ชั่น 4 สิ่งที่เปลี่ยนแปลงไปจาก Joomla 3 สู่ Joomla 4
- ไฟล์หลักเปลี่ยนไป ไฟล์ที่เห็นว่ายังเหมือนเดิมจะมีไฟล์ xml ทั้ง 3 ไฟล์ ส่วนไฟล์ users.php กับ controller.php ซึ่งถือว่าเป็นไฟล์หลักที่ระบบจะเข้ามาอ่านเป็นไฟล์แรกๆ ก่อนทำงานใน Component จะหายไปในเวอร์ชั่น 4
- ไฟล์แรกของ Component ที่ระบบจะเรียกใช้ จากเดิมเวอร์ชั่น 3 จะใช้ไฟล์ users.php กับ controller.php เป็นไฟล์แรก ในเวอร์ชั้น 4 จะเรียก DisplayController.php แทน
- ชื่อโฟลเดอร์หลักเปลี่ยนไป อย่างที่ทราบว่า Component ใน Joomla เขียนอยู่ในรูปแบบของ MVC แบ่งเป็น Model View Controller ใน Component ก็จะมีโฟลเดอร์ทั้ง 3 ตัวอยู่ ในเวอร์ชั่น 3 จะใช้คำว่า controllers models views แต่ในเวอร์ชั่น 4 เปลี่ยนเป็น Controller Model View
โค้ด: เลือกทั้งหมด
controllers => Controller
models => Model
views => View
- การเปลี่ยนตำแหน่งที่อยู่ของโฟลเดอร์ เช่น forms fields และ tmpl อธิบายแต่ละตัว forms กับ fields ในเวอร์ชั่น 3 ต้องสร้างไว้ภายในโฟลเดอร์ models อีกที แต่ในเวอร์ชั่น 4 ย้ายออกมาจาก models และปรับชื่อเป็น Field ส่วนโฟลเดอร์ tmpl ปกติแล้วเวอร์ชั่น 3 จะอยู่ภายใน views แต่ละตัว แต่ในเวอร์ชั่น 4 กลับย้ายมาไว้ข้างนอกแทน
- การตั้งชื่อไฟล์ของ MVC เปลี่ยนไป ตัวอย่างเช่น
โค้ด: เลือกทั้งหมด
ไฟล์ใน controllers เวอร์ชั่น 3 ใช้ user.php, users.php เวอร์ชั่น 4 ใช้ UserController.php, UsersController.php
ไฟล์ใน models เวอร์ชั่น 3 ใช้ user.php, users.php เวอร์ชั่น 4 ใช้ UserModel.php, UsersModel.php
ไฟล์ใน views เวอร์ชั่น 3 ใช้ view.html.php เวอร์ชั่น 4 ใช้ HtmlView.php
- การตั้งชื่อ Class ของ MVC เปลี่ยนไป ตัวอย่างเช่น
โค้ด: เลือกทั้งหมด
ไฟล์ใน controllers เวอร์ชั่น 3 ใช้ UsersControllerUser, UsersControllerUsers เวอร์ชั่น 4 ใช้ UserController, UsersController
ไฟล์ใน models เวอร์ชั่น 3 ใช้ UsersModelUser, UsersModelUsers เวอร์ชั่น 4 ใช้ UserModel, UsersModel
ไฟล์ใน views เวอร์ชั่น 3 ใช้ UsersViewUser, UsersViewUsers เวอร์ชั่น 4 ใช้ HtmlView, HtmlView (ใช้ namespace ต่างกัน)