Bỏ qua để đến nội dung

Khung XMF

2.5.x ✅ 4.0.x ✅

XOOPS Module Framework (XMF) là một thư viện mạnh mẽ được thiết kế để đơn giản hóa và tiêu chuẩn hóa việc phát triển mô-đun XOOPS. XMF cung cấp các phương pháp thực hành PHP hiện đại bao gồm không gian tên, tải tự động và một bộ trợ giúp toàn diện classes giúp giảm mã soạn sẵn và cải thiện khả năng bảo trì.

XMF là tập hợp classes và các tiện ích cung cấp:

  • Hỗ trợ PHP hiện đại - Hỗ trợ không gian tên đầy đủ với tính năng tự động tải PSR-4
  • Xử lý yêu cầu - Xác thực và dọn dẹp đầu vào an toàn
  • Trình trợ giúp mô-đun - Truy cập đơn giản vào cấu hình và đối tượng mô-đun
  • Hệ thống cấp phép - Quản lý cấp phép dễ sử dụng
  • Tiện ích cơ sở dữ liệu - Công cụ quản lý bảng và di chuyển lược đồ
  • Hỗ trợ JWT - Triển khai Mã thông báo Web JSON để xác thực an toàn
  • Tạo siêu dữ liệu - Tiện ích SEO và trích xuất nội dung
  • Giao diện quản trị - Các trang administration của mô-đun được tiêu chuẩn hóa
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

Tất cả XMF classes đều nằm trong không gian tên Xmf. Các lớp được tải tự động khi được tham chiếu - không yêu cầu includes thủ công.

use Xmf\Request;
use Xmf\Module\Helper;
// Classes load automatically when used
$input = Request::getString('input', '');
$helper = Helper::getHelper('mymodule');

Request class cung cấp quyền truy cập an toàn theo loại vào dữ liệu yêu cầu HTTP với khả năng dọn dẹp tích hợp:

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', '');

Trình trợ giúp mô-đun cung cấp quyền truy cập thuận tiện vào chức năng liên quan đến mô-đun:

$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 đơn giản hóa việc xử lý quyền XOOPS:

$permHelper = new \Xmf\Module\Helper\Permission();
// Check user permission
if ($permHelper->checkPermission('view', $itemId)) {
// User has permission
}
  • JWT - Triển khai mã thông báo web JSON
  • Database - Tiện ích cơ sở dữ liệu và quản lý lược đồ
  • Metagen - Tiện ích siêu dữ liệu và SEO
  • XOOPS 2.5.8 trở lên
  • PHP 7.2 trở lên (khuyên dùng PHP 8.x)

Cài đặtXMF là included với XOOPS 2.5.8 và các phiên bản mới hơn. Đối với các phiên bản cũ hơn hoặc cài đặt thủ công:

Phần tiêu đề “Cài đặtXMF là included với XOOPS 2.5.8 và các phiên bản mới hơn. Đối với các phiên bản cũ hơn hoặc cài đặt thủ công:”
  1. Tải xuống gói XMF từ kho XOOPS
  2. Giải nén vào thư mục XOOPS /class/xmf/ của bạn
  3. Trình tải tự động sẽ tự động xử lý việc tải class

Dưới đây là một ví dụ hoàn chỉnh hiển thị các kiểu sử dụng XMF phổ biến:

<?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 #module-development