สิ่งควรรู้ก่อนสร้าง component ใน joomla

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

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

adinan49
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 547
ลงทะเบียนเมื่อ: 01/11/2021 9:57 am

สิ่งควรรู้ก่อนสร้าง component ใน joomla

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

การสรา้ง component ใน joomla ให้คิดแบบ MVC เป็นหลักกการที่จะใช้แบบ OOP ซึ่งแบ่งการทำงานหลักๆให้เป็นรูปแบบของ object ตามชื่อเลยก็คือ model view controller
แนวคิดของ MVC
แนวคิดของ MVC
Joomla user Guide Knowledge-1.png (47.36 KiB) Viewed 1022 times
Model
การทำงานของ model จะจัดการส่วนที่ข้อมูลทั้งหมดจะคอยเตรียมข้อมูลที่เหมาะสมไว้ และ model นั้นจะทำงานเมื่อ controller ร้องขอเท่านั้น

View
view นั้นจะจัดการส่วนของหน้าตาทั้งหมด หรือส่วนติดต่อกับผู้ใช้โดยตรง (user interface) โดย view นั้นจะรับคำสั่งการทำงานจาก controller และเป็นตัวกลางให้ผู้ใช้ติดต่อกับ controller อีกด้วย

Controller
controller เปรียบเสมือนกับมันสมองและศูนย์กลางการทำงานทั้งหมด จะเห็นว่าทุกส่วนนั้นจะติดต่อกับ controller ทั้งหมดรอคอยคำสั่งจาก controller นอกจากนี้ controller จะจัดการทำงานในส่วนที่เป็น logic ทั้งหมดในระบบ

สิ่งควรสร้างใน component ของ Joomla
  • สร้างโฟเดอร์ controllers สำหรับการจัดการโฟเดอร์ models + views
  • สร้างโฟเดอร์ models สำหรับการจัดข้อมูล
  • สร้างโฟเดอร์ language สำหรับการภาษาต่าง เช่น ไทย อังกฤษ
  • สร้างโฟเดอร์ views สำหรับการแสดงผล
  • สร้างโฟเดอร์ installation สำหรับการติดตั้ง
  • สร้างไฟล์ controller.php
  • สร้างไฟล์ component นามสกุล php สำหรับการจัดการ component
  • สร้างไฟล์ component นามสกุล xml สำหรับฟอร์ม component
  • สวร้างไฟล์ global.php สำหรับ class joomal
ควรรู้ก่อนสร้าง component ใน joomla นั้นคือหลักการทำงานแบบ MVC ที่ต้องมีส่วนเก็บข้มูล ส่วนแสดงผล และควรคุบ หรือเป็นส่วนจัดการทั้ง 2 สว่น ส่วนที่เก็บข้มูล และส่วนที่แสดงผลเอง หลักการ MVC ทำให้การเขียนโค้ดของเรามีภาพรวมของโค้ดได้ชัดเจนมากขึ้น โครงสร้างชัดเจน ทำให้ยืดหยุ่นต่อการเพิ่มเติม รวมไปถึงการนำส่วนใด ๆ กลับมาใช้ซ้ำได้อีกด้วย ซึ่งเป็นหลักรทำงานแบบ MVC ในสร้าง component ของ joomla นั้นเอง

อ้างอิง
https://www.mindphp.com/forums/viewtopic.php?f=29&t=11823
https://www.borntodev.com/2020/04/02/%E0%B8%AA%E0%B8%A3%E0%B8%B8%E0%B8%9B-concept-%E0%B8%9E%E0%B8%B7%E0%B9%89%E0%B8%99%E0%B8%90%E0%B8%B2%E0%B8%99-mvc/
https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/2620-joomla-cms.html
https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1/34-joomla/4182-what-is-joomla-extension.html

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

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