XMF-framework
2.5.x ✅ 4.0.x ✅
Het XOOPS Module Framework (XMF) is een krachtige bibliotheek die is ontworpen om de ontwikkeling van XOOPS-modules te vereenvoudigen en te standaardiseren. XMF biedt moderne PHP-praktijken, waaronder naamruimten, automatisch laden en een uitgebreide set helperklassen die de standaardcode verminderen en de onderhoudbaarheid verbeteren.
Wat is XMF?
Section titled “Wat is XMF?”XMF is een verzameling klassen en hulpprogramma’s die het volgende bieden:
- Moderne PHP-ondersteuning - Volledige naamruimte-ondersteuning met automatisch laden van PSR-4
- Verzoekafhandeling - Veilige invoervalidatie en opschoning
- Modulehelpers - Vereenvoudigde toegang tot moduleconfiguraties en objecten
- Permissiesysteem - Eenvoudig te gebruiken machtigingsbeheer
- Databasehulpprogramma’s - Hulpmiddelen voor schemamigratie en tabelbeheer
- JWT-ondersteuning - JSON Web Token-implementatie voor veilige authenticatie
- Metadata genereren - SEO en hulpprogramma’s voor het extraheren van inhoud
- Beheerinterface - Gestandaardiseerde modulebeheerpagina’s
XMF Componentoverzicht
Section titled “XMF Componentoverzicht”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:#c2185bBelangrijkste kenmerken
Section titled “Belangrijkste kenmerken”Naamruimten en automatisch laden
Section titled “Naamruimten en automatisch laden”Alle XMF-klassen bevinden zich in de Xmf-naamruimte. Klassen worden automatisch geladen wanneer ernaar wordt verwezen - er is geen handleiding vereist.
use Xmf\Request;use Xmf\Module\Helper;
// Classes load automatically when used$input = Request::getString('input', '');$helper = Helper::getHelper('mymodule');Veilige afhandeling van verzoeken
Section titled “Veilige afhandeling van verzoeken”De Request class biedt typeveilige toegang tot HTTP-verzoekgegevens met ingebouwde opschoning:
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', '');Modulehelpersysteem
Section titled “Modulehelpersysteem”De Module Helper biedt gemakkelijke toegang tot modulegerelateerde functionaliteit:
$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');Toestemmingsbeheer
Section titled “Toestemmingsbeheer”De Permission-Helper vereenvoudigt de verwerking van XOOPS-machtigingen:
$permHelper = new \Xmf\Module\Helper\Permission();
// Check user permissionif ($permHelper->checkPermission('view', $itemId)) { // User has permission}Documentatiestructuur
Section titled “Documentatiestructuur”Basisprincipes
Section titled “Basisprincipes”- Aan de slag met-XMF - Installatie en basisgebruik
- XMF-Request - Verzoekafhandeling en invoervalidatie
- XMF-Module-Helper - Gebruik van modulehelperklasse
Recepten
Section titled “Recepten”- Permissie-Helper - Werken met machtigingen
- Module-Admin-Pages - Gestandaardiseerde beheerdersinterfaces maken
Referentie
Section titled “Referentie”- JWT - JSON Web Token-implementatie
- Database - Databasehulpprogramma’s en schemabeheer
- Metagen - Metagegevens en SEO-hulpprogramma’s
Vereisten
Section titled “Vereisten”- XOOPS 2.5.8 of hoger
- PHP 7.2 of hoger (PHP 8.x aanbevolen)
Installatie
Section titled “Installatie”XMF wordt meegeleverd met XOOPS 2.5.8 en latere versies. Voor eerdere versies of handmatige installatie:
- Download het XMF-pakket uit de XOOPS-repository
- Uitpakken naar uw map XOOPS
/class/xmf/ - De autoloader verwerkt het laden van klassen automatisch
Snelstartvoorbeeld
Section titled “Snelstartvoorbeeld”Hier is een compleet voorbeeld van veelgebruikte XMF-gebruikspatronen:
<?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;}Bronnen
Section titled “Bronnen”#xmf #xoops #framework #PHP #module-ontwikkeling