XMF กรอบงาน
2.5.x ✅ 4.0.x ✅
XOOPS Module Framework (XMF) เป็นไลบรารีที่มีประสิทธิภาพซึ่งได้รับการออกแบบมาเพื่อทำให้การพัฒนาโมดูล XOOPS ง่ายขึ้นและเป็นมาตรฐาน XMF มีแนวทางปฏิบัติ PHP ที่ทันสมัย รวมถึงเนมสเปซ การโหลดอัตโนมัติ และชุดคลาสตัวช่วยที่ครอบคลุม ซึ่งจะลดโค้ดสำเร็จรูปและปรับปรุงการบำรุงรักษา
XMF คืออะไร?
หัวข้อที่มีชื่อว่า “XMF คืออะไร?”XMF คือชุดของคลาสและยูทิลิตี้ที่ให้:
- การสนับสนุน PHP สมัยใหม่ - การสนับสนุนเนมสเปซเต็มรูปแบบพร้อมการโหลดอัตโนมัติ PSR-4
- การจัดการคำขอ - การตรวจสอบอินพุตและการฆ่าเชื้อที่ปลอดภัย
- ตัวช่วยโมดูล - เข้าถึงการกำหนดค่าและอ็อบเจ็กต์ของโมดูลได้ง่ายขึ้น
- ระบบการอนุญาต - การจัดการการอนุญาตที่ใช้งานง่าย
- ยูทิลิตี้ฐานข้อมูล - เครื่องมือการย้ายสคีมาและการจัดการตาราง
- JWT Support - JSON การใช้โทเค็นเว็บเพื่อการรับรองความถูกต้องที่ปลอดภัย
- การสร้างข้อมูลเมตา - SEO และยูทิลิตี้การแยกเนื้อหา
- อินเทอร์เฟซผู้ดูแลระบบ - หน้าการดูแลระบบโมดูลที่ได้มาตรฐาน
XMF ภาพรวมส่วนประกอบ
หัวข้อที่มีชื่อว่า “XMF ภาพรวมส่วนประกอบ”mermaidgraph TB subgraph XMF["XMF Framework"] direction TB subgraph Core["Core Components"] Request["🔒 Request<br/>Input Handling"] Module["📦 Module Helper<br/>Config & Handlers"] Perm["🔑 Permission<br/>Access Control"] end
subgraph Utils["Utilities"] DB["🗄️ Database<br/>Schema Tools"] JWT["🎫 JWT<br/>Token Auth"] Meta["📊 Metagen<br/>SEO Utils"] end
subgraph Admin["Admin Tools"] AdminUI["🎨 Admin UI<br/>Standardized Pages"] Icons["🖼️ Icons<br/>Font Awesome"] end end
subgraph Module["Your Module"] Controller["Controller"] Handler["Handler"] Template["Template"] end
Controller --> Request Controller --> Module Controller --> Perm Handler --> DB Template --> AdminUI
style XMF fill:#e3f2fd,stroke:#1976d2 style Core fill:#e8f5e9,stroke:#388e3c style Utils fill:#fff3e0,stroke:#f57c00 style Admin fill:#fce4ec,stroke:#c2185bคุณสมบัติที่สำคัญ
หัวข้อที่มีชื่อว่า “คุณสมบัติที่สำคัญ”เนมสเปซและการโหลดอัตโนมัติ
หัวข้อที่มีชื่อว่า “เนมสเปซและการโหลดอัตโนมัติ”คลาส XMF ทั้งหมดอยู่ในเนมสเปซ Xmf คลาสจะถูกโหลดโดยอัตโนมัติเมื่อมีการอ้างอิง - ไม่จำเป็นต้องรวมคู่มือ
use Xmf\Request;use Xmf\Module\Helper;
// Classes load automatically when used$input = Request::getString('input', '');$helper = Helper::getHelper('mymodule');การจัดการคำขอที่ปลอดภัย
หัวข้อที่มีชื่อว่า “การจัดการคำขอที่ปลอดภัย”คลาสคำขอ ให้การเข้าถึงข้อมูลคำขอ HTTP แบบปลอดภัย ด้วยการฆ่าเชื้อในตัว:
mermaidflowchart LR subgraph Input["Raw Input"] GET["$_GET"] POST["$_POST"] REQUEST["$_REQUEST"] end
subgraph XMF["Xmf\\Request"] Validate["Type Validation"] Sanitize["Sanitization"] Default["Default Values"] end
subgraph Output["Safe Output"] Int["getInt()"] Str["getString()"] Email["getEmail()"] Bool["getBool()"] end
GET --> XMF POST --> XMF REQUEST --> XMF XMF --> Int XMF --> Str XMF --> Email XMF --> Bool
style Input fill:#ffcdd2,stroke:#c62828 style XMF fill:#fff3e0,stroke:#f57c00 style Output fill:#c8e6c9,stroke:#2e7d32use Xmf\Request;
$id = Request::getInt('id', 0);$name = Request::getString('name', '');$email = Request::getEmail('email', '');ระบบตัวช่วยโมดูล
หัวข้อที่มีชื่อว่า “ระบบตัวช่วยโมดูล”ตัวช่วยโมดูล ช่วยให้เข้าถึงฟังก์ชันที่เกี่ยวข้องกับโมดูลได้อย่างสะดวก:
$helper = \Xmf\Module\Helper::getHelper('mymodule');
// Access module configuration$configValue = $helper->getConfig('setting_name', 'default');
// Get module object$module = $helper->getModule();
// Access handlers$handler = $helper->getHandler('items');การจัดการสิทธิ์
หัวข้อที่มีชื่อว่า “การจัดการสิทธิ์”Permission-Helper ช่วยให้การจัดการสิทธิ์ XOOPS ง่ายขึ้น:
$permHelper = new \Xmf\Module\Helper\Permission();
// Check user permissionif ($permHelper->checkPermission('view', $itemId)) { // User has permission}โครงสร้างเอกสาร
หัวข้อที่มีชื่อว่า “โครงสร้างเอกสาร”พื้นฐาน
หัวข้อที่มีชื่อว่า “พื้นฐาน”- เริ่มต้นใช้งาน-XMF - การติดตั้งและการใช้งานพื้นฐาน
- XMF-คำขอ - การจัดการคำขอและการตรวจสอบอินพุต
- XMF-Module-Helper - การใช้คลาสตัวช่วยโมดูล
สูตรอาหาร
หัวข้อที่มีชื่อว่า “สูตรอาหาร”- ผู้ช่วยอนุญาต - การทำงานด้วยการอนุญาต
- โมดูล-ผู้ดูแลระบบ-หน้า - การสร้างอินเทอร์เฟซผู้ดูแลระบบมาตรฐาน
อ้างอิง
หัวข้อที่มีชื่อว่า “อ้างอิง”- JWT - JSON การใช้งานโทเค็นเว็บ
- ฐานข้อมูล - ยูทิลิตี้ฐานข้อมูลและการจัดการสคีมา
- Metagen - ข้อมูลเมตาและยูทิลิตี้ SEO
ข้อกำหนด
หัวข้อที่มีชื่อว่า “ข้อกำหนด”- XOOPS 2.5.8 หรือใหม่กว่า
- PHP 7.2 หรือใหม่กว่า (PHP 8.x แนะนำ)
การติดตั้ง
หัวข้อที่มีชื่อว่า “การติดตั้ง”XMF รวมอยู่ใน XOOPS 2.5.8 และเวอร์ชันที่ใหม่กว่า สำหรับเวอร์ชันก่อนหน้าหรือการติดตั้งด้วยตนเอง:
- ดาวน์โหลดแพ็คเกจ XMF จากที่เก็บ XOOPS
- แยกไปยังไดเร็กทอรี XOOPS
/class/xmf/ของคุณ - ตัวโหลดอัตโนมัติจะจัดการการโหลดคลาสโดยอัตโนมัติ
ตัวอย่างการเริ่มต้นอย่างรวดเร็ว
หัวข้อที่มีชื่อว่า “ตัวอย่างการเริ่มต้นอย่างรวดเร็ว”นี่คือตัวอย่างที่สมบูรณ์ที่แสดงรูปแบบการใช้งาน XMF ทั่วไป:
<?phpuse Xmf\Request;use Xmf\Module\Helper;use Xmf\Module\Helper\Permission;
// Get module helper$helper = Helper::getHelper('mymodule');
// Get configuration values$itemsPerPage = $helper->getConfig('items_per_page', 10);
// Handle request input$op = Request::getCmd('op', 'list');$id = Request::getInt('id', 0);
// Check permissions$permHelper = new Permission();if (!$permHelper->checkPermission('view', $id)) { redirect_header('index.php', 3, 'Access denied');}
// Process based on operationswitch ($op) { case 'view': $handler = $helper->getHandler('items'); $item = $handler->get($id); // ... display item break; case 'list': default: // ... list items break;}แหล่งข้อมูล
หัวข้อที่มีชื่อว่า “แหล่งข้อมูล”#xmf #xoops #framework #php #การพัฒนาโมดูล