Antes de criar um módulo, é preciso entender como o prédio funciona por dentro e depois quais arquivos precisam ser construídos.
Como o prédio funciona
-
Internet sem estado
Cada pedido é tratado como se fosse a primeira vez. Tudo que foi montado para atender o pedido é descartado quando a resposta sai. O prédio em si continua de pé entre um pedido e outro.
-
Request e Response
Andam sempre em par. Cada clique do usuário vira um request que viaja pela internet, entra no prédio, é processado, e um response (geralmente um documento HTML) volta pro browser.
-
6 Guardas na Entrada — Filtros Globais
DataBaseFilter (abre conexão com o banco), PerfFilter (mede tempo), EffectFilter (gerencia Ajax), AAFilter (sessão/autenticação), ErrorFilter (captura erros), PermissaoFilter (checa acesso ao módulo). Nenhum pedido entra sem passar por todos.
-
Ficha Permanente — Sessão do Usuário
A única coisa que persiste entre pedidos. Fica guardada dentro do prédio numa gaveta. O browser do usuário só carrega o número dela e manda em todo pedido seguinte.
-
Manager — Cartão Temporário
Montado fresco a cada pedido com 3 camadas encaixadas (AppManager + PnlManager + ManagerDoDepartamento). Carrega todo o contexto: conexão com o banco, sessão do usuário, acesso à ferramentaria, ao ui(), às permissões.
-
Agente usa o cartão em cada parada
Pegar a ferramentaria, fabricar a ferramenta, acessar o banco, criar componentes visuais. Sem cartão, o agente não faz nada — o cartão é o personagem principal do framework.
-
Permissões linha por linha
Para cada produto da lista, o agente pergunta ao cartão "esse usuário pode deletar?" antes de desenhar o botão. A tela é montada dinamicamente, baseada em quem está logado.
Os 7 arquivos em 3 fases
3 arquivos novos + 4 edições formam a cadeia para criar um módulo.
Fase 1 — Construção isolada (elevador de serviço, em sigilo):
-
Departamento Home novo — Recepção
Tela principal do módulo com sidebar e breadcrumb. É o primeiro lugar que o usuário vê ao entrar no departamento.
-
Departamento Manager novo — Estrutura do Departamento
Registra todas as actions via regAction e define os crachás de permissão via regFun. Grava na lista telefônica do prédio no startup.
-
Departamento Md Factory novo — Ferramentaria Local
Fabrica os models sob encomenda e guarda pra reusar (lazy init). As ferramentas que as actions usam para acessar o banco de dados.
Fase 2 — Conectar ao prédio:
-
Apps Root Model Factory editar — Ferramentaria Central
Conecta a ferramentaria do módulo ao getFactory() global. Sem isso, a central responde "não conheço" quando o agente pede a local.
-
Pnl Cfg editar — Quadro de Disjuntores
Cada disjuntor liga ou desliga um módulo para um cliente específico. Editar instala o disjuntor novo do Departamento.
-
Root Manager editar — Configuração Geral
Classe separada que, no startup, chama cada módulo para se configurar. Uma linha é suficiente para o framework saber que o departamento existe.
Fase 3 — Ativar para os clientes:
-
Home Desk editar — Saguão Principal
Adiciona a placa do módulo no saguão após o login. Só aparece se o usuário tem permissão (Fase 1) E o disjuntor do PnlCfg está ligado (Fase 2).