ข้ามไปยังเนื้อหา

XMF กรอบงาน

2.5.x ✅ 4.0.x ✅

XOOPS Module Framework (XMF) เป็นไลบรารีที่มีประสิทธิภาพซึ่งได้รับการออกแบบมาเพื่อทำให้การพัฒนาโมดูล XOOPS ง่ายขึ้นและเป็นมาตรฐาน XMF มีแนวทางปฏิบัติ PHP ที่ทันสมัย ​​รวมถึงเนมสเปซ การโหลดอัตโนมัติ และชุดคลาสตัวช่วยที่ครอบคลุม ซึ่งจะลดโค้ดสำเร็จรูปและปรับปรุงการบำรุงรักษา

XMF คือชุดของคลาสและยูทิลิตี้ที่ให้:

  • การสนับสนุน PHP สมัยใหม่ - การสนับสนุนเนมสเปซเต็มรูปแบบพร้อมการโหลดอัตโนมัติ PSR-4
  • การจัดการคำขอ - การตรวจสอบอินพุตและการฆ่าเชื้อที่ปลอดภัย
  • ตัวช่วยโมดูล - เข้าถึงการกำหนดค่าและอ็อบเจ็กต์ของโมดูลได้ง่ายขึ้น
  • ระบบการอนุญาต - การจัดการการอนุญาตที่ใช้งานง่าย
  • ยูทิลิตี้ฐานข้อมูล - เครื่องมือการย้ายสคีมาและการจัดการตาราง
  • JWT Support - JSON การใช้โทเค็นเว็บเพื่อการรับรองความถูกต้องที่ปลอดภัย
  • การสร้างข้อมูลเมตา - SEO และยูทิลิตี้การแยกเนื้อหา
  • อินเทอร์เฟซผู้ดูแลระบบ - หน้าการดูแลระบบโมดูลที่ได้มาตรฐาน
mermaid
graph 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 แบบปลอดภัย ด้วยการฆ่าเชื้อในตัว:

mermaid
flowchart 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:#2e7d32
use 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 permission
if ($permHelper->checkPermission('view', $itemId)) {
// User has permission
}
  • JWT - JSON การใช้งานโทเค็นเว็บ
  • ฐานข้อมูล - ยูทิลิตี้ฐานข้อมูลและการจัดการสคีมา
  • Metagen - ข้อมูลเมตาและยูทิลิตี้ SEO
  • XOOPS 2.5.8 หรือใหม่กว่า
  • PHP 7.2 หรือใหม่กว่า (PHP 8.x แนะนำ)

XMF รวมอยู่ใน XOOPS 2.5.8 และเวอร์ชันที่ใหม่กว่า สำหรับเวอร์ชันก่อนหน้าหรือการติดตั้งด้วยตนเอง:

  1. ดาวน์โหลดแพ็คเกจ XMF จากที่เก็บ XOOPS
  2. แยกไปยังไดเร็กทอรี XOOPS /class/xmf/ ของคุณ
  3. ตัวโหลดอัตโนมัติจะจัดการการโหลดคลาสโดยอัตโนมัติ

นี่คือตัวอย่างที่สมบูรณ์ที่แสดงรูปแบบการใช้งาน XMF ทั่วไป:

<?php
use 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 operation
switch ($op) {
case 'view':
$handler = $helper->getHandler('items');
$item = $handler->get($id);
// ... display item
break;
case 'list':
default:
// ... list items
break;
}

#xmf #xoops #framework #php #การพัฒนาโมดูล