25 de August de 2026
Maker Universe v3.0: Novo Template Engine, Plugins Autocontidos e Zero Dependências
Conheça a v3.0 do Maker Universe CRM: arquitetura 100% autoral, compilador de templates próprio, plugins modulares e alta performance para seu servidor.
MUCRM v3.0 — Nova Arquitetura
A evolução do ecossistema Maker Universe CRM dá um salto definitivo com o lançamento da Versão 3.0 (v3).
Esta atualização representa uma reformulação arquitetural completa do core: um micro-runtime 100% autoral, enxuto e projetado para oferecer carregamento instantâneo, zero lag e máxima facilidade no desenvolvimento de temas e extensões para servidores e comunidades gamer.
1. Novo Template Engine Próprio
A v3 introduz um compilador de templates nativo, direto e sem sobrecarga de processamento.
A nova sintaxe adota diretivas limpas iniciadas por dois-pontos (:), organizando a estrutura do layout sem poluir o HTML.
Estrutura do Layout Principal
Arquivo:
layouts/app.php
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Maker Universe CRM</title>
<!-- CSS Global -->
<link rel="stylesheet" href="{{ src('css/app.css') }}">
<!-- Injeção dos estilos específicos da view/plugin -->
:include_styles
</head>
<body>
<main>
:content
</main>
<!-- Scripts globais -->
<script src="{{ src('js/app.js') }}"></script>
<!-- Injeção dos scripts da view/plugin no fim do body -->
:include_scripts
</body>
</html>
Uso nas Telas e Componentes
As views podem declarar seus próprios estilos e scripts utilizando as diretivas :styles e :scripts.
<div class="painel-container">
<h1>Painel do Jogador</h1>
</div>
:styles
<link rel="stylesheet" href="{{ theme_src('css/painel.css') }}">
:endstyles
:scripts
<script src="{{ theme_src('js/painel.js') }}"></script>
:endscripts
Essa estrutura permite manter os recursos específicos de cada tela organizados, enquanto o layout principal controla a posição de carregamento dos estilos e scripts.
2. Sistema de Assets em Três Camadas
A gestão de arquivos estáticos foi estruturada em três camadas, separando claramente a raiz pública, o tema ativo e os módulos independentes.
src()
Aponta diretamente para a pasta pública padrão:
{{ src('caminho/arquivo') }}
Exemplo:
<link rel="stylesheet" href="{{ src('css/app.css') }}">
Os arquivos são resolvidos a partir da pasta:
public/
theme_src()
Carrega arquivos estáticos do tema atualmente ativo:
{{ theme_src('caminho/arquivo') }}
Exemplo:
<link rel="stylesheet" href="{{ theme_src('css/painel.css') }}">
Isso permite que cada tema mantenha seus próprios arquivos CSS, JavaScript, imagens e demais recursos.
plugin_src()
Resolve arquivos diretamente dentro da estrutura de assets do próprio plugin:
{{ plugin_src('NomePlugin', 'caminho/arquivo') }}
Exemplo:
<script src="{{ plugin_src('RoletaDaSorte', 'js/roleta.js') }}"></script>
A estrutura pode ser organizada da seguinte maneira:
app/
└── Plugins/
└── NomePlugin/
└── assets/
├── css/
├── js/
└── images/
3. Plugins 100% Autocontidos
Com o novo plugin_src(), a instalação de novos sistemas — como Roletas, Rankings, Lojas e Caixas Premiadas — torna-se verdadeiramente modular.
Os plugins podem distribuir seus próprios:
- CSS;
- JavaScript;
- imagens;
- fontes;
- arquivos estáticos necessários para seu funcionamento.
Tudo permanece dentro da própria estrutura do plugin, sem a necessidade de copiar arquivos manualmente para a pasta pública da aplicação.
Exemplo de Estrutura
app/
└── Plugins/
└── RoletaDaSorte/
├── assets/
│ ├── css/
│ │ └── roleta.css
│ ├── js/
│ │ └── roleta.js
│ └── images/
│ └── background.png
│
├── Controllers/
├── Models/
├── Views/
└── routes.php
Dentro da view do plugin:
<link rel="stylesheet" href="{{ plugin_src('RoletaDaSorte', 'css/roleta.css') }}">
<script src="{{ plugin_src('RoletaDaSorte', 'js/roleta.js') }}"></script>
<img src="{{ plugin_src('RoletaDaSorte', 'images/background.png') }}">
Essa arquitetura permite que cada extensão seja distribuída como uma unidade independente, facilitando instalação, manutenção e atualização.
4. Entrada, Validação e Respostas Fluídas (I/O)
O tratamento de requisições no backend foi simplificado através do método $req->check() e do serviço Responder, disponibilizado através do helper $res.
Validação de Dados
URI::post('/shop/comprar', function ($req, $res) {
// Validação e sanitização direta
$dados = $req->check([
'item_id' => 'required|numeric',
'cupom' => 'string'
]);
// Resposta encadeada com redirecionamento limpo
return $res
->success('Item adquirido com sucesso!')
->to('shop.inventario');
});
O método $req->check() permite validar e obter os dados da requisição de maneira direta, mantendo o código do endpoint limpo e objetivo.
Respostas Fluídas
O serviço Responder permite construir respostas através de métodos encadeados:
return $res
->success('Item adquirido com sucesso!')
->to('shop.inventario');
Isso facilita operações que precisam retornar mensagens de sucesso e realizar redirecionamentos.
5. Roteamento Declarativo com URI e Helper to()
A declaração de rotas utiliza a fachada URI, permitindo definir os endpoints da aplicação de forma declarativa.
O helper to() permite gerar URLs a partir do nome da rota, evitando links fixos (hardcoded) dentro das views.
Declaração
URI::get(
'/ranking',
[RankingController::class, 'index']
)->name('ranking.geral');
A rota recebe o nome:
ranking.geral
Uso no Template
<a href="{{ to('ranking.geral') }}">
Ver Ranking
</a>
Dessa forma, o template trabalha com o nome da rota, e não diretamente com o caminho da URL.
Caso o endereço da rota seja alterado:
URI::get(
'/ranking-geral',
[RankingController::class, 'index']
)->name('ranking.geral');
O template continua utilizando:
<a href="{{ to('ranking.geral') }}">
Ver Ranking
</a>
Isso mantém as views desacopladas da estrutura física das URLs.
6. Módulo de Segurança Crypt
Para proteger tokens de pagamento, credenciais e integrações sensíveis, a v3 incorpora o módulo nativo Crypt.
O objetivo é disponibilizar métodos diretos para operações de criptografia dentro da própria arquitetura da MUCRM, sem depender de pacotes externos.
Exemplo:
$valorCriptografado = Crypt::encrypt($valor);
$valorOriginal = Crypt::decrypt($valorCriptografado);
O módulo centraliza as operações de proteção de informações sensíveis, mantendo esse recurso integrado ao core da aplicação.
Como Começar
A MUCRM v3.0 representa uma nova etapa na evolução da arquitetura do framework.
Com um micro-runtime próprio, um novo Template Engine, sistema de assets em três camadas, plugins autocontidos, validação simplificada, respostas fluídas, roteamento declarativo e o módulo nativo Crypt, o desenvolvimento de aplicações, temas e extensões torna-se ainda mais rápido, organizado e modular.
A documentação completa, novos tutoriais passo a passo e o material de migração já estão disponíveis.
Atualize seus módulos e aproveite toda a velocidade da nova arquitetura MUCRM v3.0!