เปรียบเทียบโครงสร้างไฟล์ Component ระหว่าง Joomla 3.x และ Joomla 4.x

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

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

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

เปรียบเทียบโครงสร้างไฟล์ Component ระหว่าง Joomla 3.x และ Joomla 4.x

โพสต์โดย tsukasaz » 27/06/2018 4:49 pm

เปรียบเทียบโครงสร้างไฟล์ Component ระหว่าง Joomla 3.x และ Joomla 4.x

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
2561-06-27 15_52_09-com_users.png
2561-06-27 15_52_09-com_users.png (17.77 KiB) เปิดดู 573 ครั้ง


โครงสร้างไฟล์ เวอร์ชั่น 4
2561-06-27 15_54_25-com_users.png
2561-06-27 15_54_25-com_users.png (18.88 KiB) เปิดดู 573 ครั้ง


สิ่งที่เปลี่ยนแปลงไปจาก 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 ต่างกัน)

- ในเวอร์ชั่น 3 แทบจะไม่เห็นการใช้ namespace แต่ในเวอร์ชั่น 4 จะเปลี่ยนมาใช้เต็มรูปแบบ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

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

กำลังดูบอร์ดนี้: 125 และ บุคคลทั่วไป 0 ท่าน