Framework XMF
2.5.x ✅ 4.0.x ✅
O XOOPS Module Framework (XMF) é uma biblioteca poderosa projetada para simplificar e padronizar o desenvolvimento de módulos XOOPS. XMF fornece práticas modernas de PHP incluindo namespaces, autoloading e um conjunto abrangente de classes helper que reduzem código boilerplate e melhoram a manutenibilidade.
O que é XMF?
Seção intitulada “O que é XMF?”XMF é uma coleção de classes e utilitários que fornecem:
- Suporte Modern PHP - Suporte completo a namespaces com autoloading PSR-4
- Manipulação de Requisições - Validação segura e sanitização de entrada
- Module Helpers - Acesso simplificado a configurações de módulo e objetos
- Sistema de Permissões - Gerenciamento fácil de permissões
- Utilitários de Banco de Dados - Ferramentas de migração de schema e gerenciamento de tabelas
- Suporte JWT - Implementação de JSON Web Token para autenticação segura
- Geração de Metadados - Utilitários de SEO e extração de conteúdo
- Interface Admin - Páginas de administração de módulo padronizadas
Visão Geral de Componentes XMF
Seção intitulada “Visão Geral 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:#c2185bPrincipais Características
Seção intitulada “Principais Características”Namespaces e Autoloading
Seção intitulada “Namespaces e Autoloading”Todas as classes XMF residem no namespace Xmf. Classes são carregadas automaticamente quando referenciadas - nenhuma inclusão manual necessária.
use Xmf\Request;use Xmf\Module\Helper;
// Classes carregam automaticamente quando usadas$input = Request::getString('input', '');$helper = Helper::getHelper('mymodule');Manipulação Segura de Requisições
Seção intitulada “Manipulação Segura de Requisições”A classe Request fornece acesso type-safe a dados de requisição HTTP com sanitização 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 Helper de Módulo
Seção intitulada “Sistema de Helper de Módulo”O Module Helper fornece acesso conveniente à funcionalidade relacionada a módulo:
$helper = \Xmf\Module\Helper::getHelper('mymodule');
// Acessar configuração do módulo$configValue = $helper->getConfig('setting_name', 'default');
// Obter objeto do módulo$module = $helper->getModule();
// Acessar handlers$handler = $helper->getHandler('items');Gerenciamento de Permissões
Seção intitulada “Gerenciamento de Permissões”O Permission-Helper simplifica o gerenciamento de permissões XOOPS:
$permHelper = new \Xmf\Module\Helper\Permission();
// Verificar permissão do usuárioif ($permHelper->checkPermission('view', $itemId)) { // Usuário tem permissão}Estrutura da Documentação
Seção intitulada “Estrutura da Documentação”- Getting-Started-with-XMF - Instalação e uso básico
- XMF-Request - Manipulação de requisições e validação de entrada
- XMF-Module-Helper - Uso da classe module helper
Recipes
Seção intitulada “Recipes”- Permission-Helper - Trabalhando com permissões
- Module-Admin-Pages - Criando interfaces administrativas padronizadas
Reference
Seção intitulada “Reference”- JWT - Implementação de JSON Web Token
- Database - Utilitários de banco de dados e gerenciamento de schema
- Metagen - Utilitários de metadados e SEO
Requisitos
Seção intitulada “Requisitos”- XOOPS 2.5.8 ou posterior
- PHP 7.2 ou posterior (PHP 8.x recomendado)
Instalação
Seção intitulada “Instalação”XMF é incluído com XOOPS 2.5.8 e versões posteriores. Para versões anteriores ou instalação manual:
- Faça download do pacote XMF do repositório XOOPS
- Extraia para seu diretório XOOPS
/class/xmf/ - O autoloader cuidará do carregamento de classes automaticamente
Exemplo de Início Rápido
Seção intitulada “Exemplo de Início Rápido”Aqui está um exemplo completo mostrando padrões comuns de uso de XMF:
<?phpuse Xmf\Request;use Xmf\Module\Helper;use Xmf\Module\Helper\Permission;
// Obter helper de módulo$helper = Helper::getHelper('mymodule');
// Obter valores de configuração$itemsPerPage = $helper->getConfig('items_per_page', 10);
// Manipular entrada de requisição$op = Request::getCmd('op', 'list');$id = Request::getInt('id', 0);
// Verificar permissões$permHelper = new Permission();if (!$permHelper->checkPermission('view', $id)) { redirect_header('index.php', 3, 'Acesso negado');}
// Processar baseado em operaçãoswitch ($op) { case 'view': $handler = $helper->getHandler('items'); $item = $handler->get($id); // ... exibir item break; case 'list': default: // ... listar items break;}Recursos
Seção intitulada “Recursos”#xmf #xoops #framework #php #module-development