Glossário
Termos e conceitos do MAD em ordem alfabética.
Termos e conceitos do MAD framework, em ordem alfabética. Cada entrada linka para a página que cobre o assunto em profundidade.
A
action |
Método público de um MadComponent chamável do client via mad:click, mad:submit ou mad:change. Resolvido via Reflection — argumentos por nome, tipo, ou array inteiro. Bloqueado por uma blacklist se for hook de lifecycle ou começar com _. |
ApiResourceController |
Base abstrata de Mad\Rest para REST/CRUD sobre Eloquent, casando com Route::apiResource. Mestre-detalhe, filtros DSL, validação por Model::rules(), hooks. Ver Engine vs REST. |
| auto-bind | Quando uma action retorna void, o MadComponentHandler compara o estado antes/depois e gera as ops parciais sozinho — sem que a action precise montar um MadResponse manualmente. |
B
boot() |
Hook de MadComponent chamado em toda requisição — primeira carga e cada action AJAX. Primeiro hook a rodar no ciclo de vida. |
C
| CSRF unificado | O token validado pelas rotas reativas (/app/_mad-wire, /public/_mad-wire) é o mesmo csrf_token() nativo do Laravel — sem mecanismo próprio de CSRF. |
D
dehydrate() |
Último hook do ciclo de vida — roda antes de serializar o estado público no mad_state. Use para limpar props pesadas que não precisam viajar para o client. |
| DRAWER | Um dos 3 wrappers de MadComponent — painel lateral overlay, configurável por $title/$size/$side. Ver Wrappers. |
F
| front controller | Ponto único de entrada HTTP do app — public/index.php, padrão do Laravel. Substitui os múltiplos entry points (index.php/engine.php/public.php/rest.php) do framework legado. |
H
hydrate() |
Hook chamado logo após o estado ser restaurado numa requisição AJAX (não roda na primeira carga). Use para recarregar dados que não foram serializados no mad_state. |
I
| INTERNAL | Wrapper sem chrome — o componente renderiza direto no main da página. Default de listagens, dashboards e de MadSitePage (sempre forçado). |
M
| MadAction | Builder de URLs e onclicks tipados para navegação entre MadComponents. |
| MadAppController | Controller único que despacha todas as telas do admin (run()) e o ciclo reativo (wire()) — consolidação do que no framework legado eram duas classes separadas. |
| MadBlade | Fachada de render Blade (sobre Illuminate\View) usada por MadComponent::render() e pelos wrappers de modal/drawer. |
| MadComponent | Classe base de todo componente reativo do framework. Ver Anatomia do MadComponent. |
| MadComponentHandler | Processa toda requisição AJAX de um MadComponent — decripta estado, aplica mad_model, chama a action, gera ops. Ver MadWire por dentro. |
| MadComponentWrapper | Decide o chrome (MODAL/DRAWER/passthrough) ao redor do HTML renderizado de um componente, conforme $wrapper. |
| MadDataGrid | Subclasse de MadComponent para listagens reativas — busca, sort, filtro, paginação, export. |
| MadForm | Value object de formulário — campos, visibilidade, readonly, disabled e opções de combo como buckets diffáveis pelo auto-bind. |
| MadResponse | Builder fluente de ops parciais (toast, html, closeModal...), retornado por uma action. Ver MadResponse — todas as ops. |
| MadRoutes | Helpers (screen, expose, resource, exposeClass) que registram rotas amigáveis do admin, todas resolvendo para MadAppController::run(). |
| MadSitePage | Subclasse de MadComponent para páginas públicas reativas — wire endpoint em /public/_mad-wire, INTERNAL forçado. Base deste próprio portal de docs. |
| MadStateCrypt | Criptografia autenticada (AES-256-GCM) do mad_state — confidencialidade + integridade, sem dependência de CSRF para o estado em si. |
| MadWire | O sistema de reatividade server-first do framework — mad:click/mad:model disparam POST para /app/_mad-wire ou /public/_mad-wire, processado por MadComponentHandler. |
mad_action |
Campo do POST reativo — nome do método público a chamar no componente hidratado. |
mad_model[] |
Campo do POST reativo — valores coletados de todo elemento com mad:model dentro do wrapper, aplicados antes da action. |
mad_state |
Token criptografado (classe + estado público) que viaja entre client e servidor a cada round-trip reativo. |
| MODAL | Um dos 3 wrappers de MadComponent — overlay centralizado, configurável por $title/$size. |
| mount() | Hook chamado apenas na primeira carga (GET) de um MadComponent — nunca em actions AJAX subsequentes. |
O
| onShow() | Nome de entry-point reservado, declarado como no-op vazio na base MadComponent — não é hook de lifecycle e não roda sozinho. Só é chamado quando o request traz method=onShow (é o que navigate="Classe::onShow({id})" gera) ou quando uma subclasse/trait o sobrescreve (ex.: MadFiltersTrait). Para inicializar, use mount(). Ver Anatomia do MadComponent. |
| ops | Lista de instruções declarativas ({op: 'toast', ...}, {op: 'html', ...}) que o client aplica no DOM sem reload — geradas por MadResponse explícito e/ou pelo diff de auto-bind. |
P
| PermissionGate | Gate central de autorização — canAccess($class, $method) para navegação, canAccessWire() para o ciclo reativo. |
| props públicas | Toda propriedade public de um MadComponent vira state reativo — serializada e criptografada a cada response. |
R
| render parcial | Atualização de um seletor específico do DOM (MadResponse->html(), val(), manageRow()) sem re-renderizar o componente inteiro. |
| REST API | Camada JSON stateless do framework (packages/mad-framework/src/mad/rest/) — independente do MadWire, pensada para consumo externo. Ver Engine vs REST. |
S
| ShellController | Decide qual casco visual servir numa navegação direta — iframe, layout admin, layout público ou login — conforme sessão e parâmetros da request. |
| show() | Método de entrada de um MadComponent — orquestra boot()/mount()/dispatch de método/render. Chamado pelo controller que resolveu a rota. |
?static=1 |
Query param que, combinado com um método PHP-estático, faz MadAppController::run() invocar o método direto e devolver o output bufferizado como application/json — sem casco e sem show() (feeds de widget, Mad.exec). Método de instância com static=1 segue o fluxo normal de fragmento (o Mad.go sempre manda static=1, herança do engine legado). Métodos de nome mutante (save*, onDelete…) exigem POST — GET recebe 405. Ver Ciclo de requisição. |
U
updating() / updated() |
Hooks disparados antes/depois de uma prop pública mudar via mad:model — validação e efeitos colaterais. |
V
| view() | Método abstrato de MadComponent — retorna o nome da view Blade (ou [nome, dados extras]) a renderizar. |
| VERSION | Arquivo de texto puro packages/mad-framework/VERSION — fonte da verdade do semver do pacote (hoje 5.118.0), lido em runtime por \Mad\Support\MadFramework::version() (cache por request; 0.0.0-unknown se o arquivo faltar ou não bater X.Y.Z). Nunca vira o campo version do composer.json: o require dos apps é mad/framework: "@dev" via path repo e uma version explícita mudaria a stability para stable, quebrando o composer install de todo app já gerado. |
W
| wrapper | Configuração estática ($wrapper) que define como o framework apresenta o componente — INTERNAL, MODAL ou DRAWER. Ver Wrappers. |