XMF-Framework
2.5.x ✅ 4.0.x ✅
Das XOOPS Module Framework (XMF) ist eine leistungsstarke Bibliothek, die entwickelt wurde, um die XOOPS-Modulentwicklung zu vereinfachen und zu standardisieren. XMF bietet moderne PHP-Praktiken, einschließlich Namespaces, Autoloading und umfassend Helfer-Klassen, die Boilerplate-Code reduzieren und die Wartbarkeit verbessern.
Was ist XMF?
Abschnitt betitelt „Was ist XMF?“XMF ist eine Sammlung von Klassen und Dienstprogrammen, die Folgendes bereitstellen:
- Moderne PHP-Unterstützung - Volle Namespace-Unterstützung mit PSR-4-Autoloading
- Request-Verarbeitung - Sichere Input-Validierung und Bereinigung
- Modul-Helfer - Vereinfachter Zugriff auf Modulkonfigurationen und Objekte
- Berechtigungssystem - Benutzerfreundliche Berechtigungsverwaltung
- Datenbankdienstprogramme - Schema-Migrations- und Tabellenverwaltungstools
- JWT-Unterstützung - JSON Web Token-Implementierung für sichere Authentifizierung
- Metadaten-Generierung - SEO- und Content-Extraktionsdienstprogramme
- Admin-Schnittstelle - Standardisierte Modul-Admin-Seiten
XMF Component Overview
Abschnitt betitelt „XMF Component Overview“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:#c2185bWichtigste Funktionen
Abschnitt betitelt „Wichtigste Funktionen“Namespaces und Autoloading
Abschnitt betitelt „Namespaces und Autoloading“Alle XMF-Klassen befinden sich im Xmf-Namespace. Klassen werden automatisch geladen, wenn sie referenziert werden - keine manuellen Includes erforderlich.
use Xmf\Request;use Xmf\Module\Helper;
// Classes load automatically when used$input = Request::getString('input', '');$helper = Helper::getHelper('mymodule');Sichere Request-Verarbeitung
Abschnitt betitelt „Sichere Request-Verarbeitung“Die Request-Klasse bietet typensicheren Zugriff auf HTTP-Request-Daten mit integrierter Bereinigung:
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', '');Modul-Helper-System
Abschnitt betitelt „Modul-Helper-System“Der Modul-Helper bietet praktischen Zugriff auf modulbezogene Funktionalität:
$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');Berechtigungsverwaltung
Abschnitt betitelt „Berechtigungsverwaltung“Der Permission-Helper vereinfacht die XOOPS-Berechtigungsverwaltung:
$permHelper = new \Xmf\Module\Helper\Permission();
// Check user permissionif ($permHelper->checkPermission('view', $itemId)) { // User has permission}Dokumentationsstruktur
Abschnitt betitelt „Dokumentationsstruktur“Grundlagen
Abschnitt betitelt „Grundlagen“- Erste Schritte mit XMF - Installation und grundlegende Verwendung
- XMF-Request - Request-Verarbeitung und Input-Validierung
- XMF-Module-Helper - Verwendung der Modul-Helper-Klasse
Rezepte
Abschnitt betitelt „Rezepte“- Permission-Helper - Arbeiten mit Berechtigungen
- Module-Admin-Pages - Erstellung standardisierter Admin-Schnittstellen
Referenz
Abschnitt betitelt „Referenz“- JWT - JSON Web Token-Implementierung
- Database - Datenbank-Dienstprogramme und Schema-Verwaltung
- Metagen - Metadaten- und SEO-Dienstprogramme
Anforderungen
Abschnitt betitelt „Anforderungen“- XOOPS 2.5.8 oder später
- PHP 7.2 oder später (PHP 8.x empfohlen)
Installation
Abschnitt betitelt „Installation“XMF ist in XOOPS 2.5.8 und späteren Versionen enthalten. Für frühere Versionen oder manuelle Installation:
- Laden Sie das XMF-Paket aus dem XOOPS-Repository herunter
- Extrahieren Sie es in Ihr XOOPS-Verzeichnis
/class/xmf/ - Der Autoloader kümmert sich um das Laden der Klassen automatisch
Quick Start Beispiel
Abschnitt betitelt „Quick Start Beispiel“Here is a complete example showing common XMF usage patterns:
<?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;}Ressourcen
Abschnitt betitelt „Ressourcen“#xmf #xoops #framework #php #module-development