Marco XMF
2.5.x ✅ 4.0.x ✅
El Marco de Módulo de XOOPS (XMF) es una biblioteca poderosa diseñada para simplificar y estandarizar el desarrollo de módulos de XOOPS. XMF proporciona prácticas modernas de PHP incluyendo espacios de nombres, autocarga y un conjunto completo de clases auxiliares que reducen el código repetitivo y mejoran la mantenibilidad.
¿Qué es XMF?
Sección titulada «¿Qué es XMF?»XMF es una colección de clases y utilidades que proporcionan:
- Soporte PHP Moderno - Soporte completo de espacios de nombres con autocarga PSR-4
- Manejo de Solicitudes - Validación segura de entrada y sanitización
- Ayudantes de Módulo - Acceso simplificado a configuraciones y objetos de módulo
- Sistema de Permisos - Gestión de permisos fácil de usar
- Utilidades de Base de Datos - Herramientas de migración de esquema y gestión de tablas
- Soporte JWT - Implementación de Token Web JSON para autenticación segura
- Generación de metadatos - Utilidades de SEO y extracción de contenido
- Interfaz de administración - Páginas de administración de módulo estandarizadas
Descripción general de componentes XMF
Sección titulada «Descripción general de componentes XMF»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:#c2185bCaracterísticas principales
Sección titulada «Características principales»Espacios de nombres y autocarga
Sección titulada «Espacios de nombres y autocarga»Todas las clases XMF residen en el espacio de nombres Xmf. Las clases se cargan automáticamente cuando se hace referencia a ellas - no se requieren inclusiones manuales.
use Xmf\Request;use Xmf\Module\Helper;
// Classes load automatically when used$input = Request::getString('input', '');$helper = Helper::getHelper('mymodule');Manejo seguro de solicitudes
Sección titulada «Manejo seguro de solicitudes»La clase Request proporciona acceso seguro de tipo a datos de solicitud HTTP con sanitización integrada:
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:#2e7d32use Xmf\Request;
$id = Request::getInt('id', 0);$name = Request::getString('name', '');$email = Request::getEmail('email', '');Sistema de ayudantes de módulo
Sección titulada «Sistema de ayudantes de módulo»El Ayudante de módulo proporciona acceso conveniente a funcionalidad relacionada con módulos:
$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');Gestión de permisos
Sección titulada «Gestión de permisos»El Ayudante de permisos simplifica el manejo de permisos de XOOPS:
$permHelper = new \Xmf\Module\Helper\Permission();
// Check user permissionif ($permHelper->checkPermission('view', $itemId)) { // User has permission}Estructura de documentación
Sección titulada «Estructura de documentación»Conceptos básicos
Sección titulada «Conceptos básicos»- Getting-Started-with-XMF - Instalación y uso básico
- XMF-Request - Manejo de solicitudes y validación de entrada
- XMF-Module-Helper - Uso de la clase auxiliar de módulo
Recetas
Sección titulada «Recetas»- Permission-Helper - Trabajar con permisos
- Module-Admin-Pages - Creación de interfaces de administración estandarizadas
Referencia
Sección titulada «Referencia»- JWT - Implementación de Token Web JSON
- Database - Utilidades de base de datos y gestión de esquema
- Metagen - Utilidades de metadatos y SEO
Requisitos
Sección titulada «Requisitos»- XOOPS 2.5.8 o posterior
- PHP 7.2 o posterior (PHP 8.x recomendado)
Instalación
Sección titulada «Instalación»XMF se incluye con XOOPS 2.5.8 y versiones posteriores. Para versiones anteriores o instalación manual:
- Descargue el paquete XMF desde el repositorio de XOOPS
- Extraiga a su directorio XOOPS
/class/xmf/ - El cargador automático manejará la carga de clases automáticamente
Ejemplo de inicio rápido
Sección titulada «Ejemplo de inicio rápido»Aquí hay un ejemplo completo que muestra patrones de uso comunes de 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;}Recursos
Sección titulada «Recursos»#xmf #xoops #framework #php #module-development