Módulos plugáveis
Cada parte do sistema é uma pasta em app/Modulos: rotas, telas, banco e menu. Liga e desliga numa linha.
O SWMVC é a base PHP de todo sistema e site da SanWeb: núcleo MVC com rotas, banco, sessão e CSRF, painel pronto com navegação sem recarregar, módulos plugáveis, permissões por papel e login com digital. Roda em PHP 8.3+ com MySQL 8, sem Composer, sem Node e sem build.
Kit de 15/09/2026 · 288 KBCada parte do sistema é uma pasta em app/Modulos: rotas, telas, banco e menu. Liga e desliga numa linha.
Template grafite, navegação sem recarregar, tema claro e escuro, tela cheia e avisos.
Login por e-mail e senha, "manter conectado" e digital ou rosto no celular (WebAuthn).
Admin, gerente e usuário. O admin libera o que cada papel pode fazer numa tela só.
O visual vem do SWCore com versão fixa: nada de framework copiado dentro do projeto.
php install.php cria banco e admin. php update.php aplica tabelas e migrações novas.
php install.php --admin=voce@empresa.com.br — ele cria o banco e mostra a senha do admin uma vez.app/Modulos e ligue em app/Config/modulos.php. O passo a passo está no README.PHP 8.3 ou mais novo e MySQL 8. Não usa Composer, Node nem build: é copiar a pasta, configurar o .env e instalar.
Extraia o kit na pasta do projeto, copie o .env.example para .env, preencha nome, APP_URL e banco e rode php install.php --admin=voce@empresa.com.br. O instalador cria o banco, as tabelas e o primeiro admin; a senha aparece uma vez no terminal.
Rode php update.php. Ele aplica as tabelas e permissões novas dos schema.sql, roda as migrações que faltam (cada uma uma vez só, anotada na tabela migracoes) e limpa o cache.
Crie uma pasta em app/Modulos com modulo.json, Menu.php, Routes.php, controller, model, views e Database/schema.sql. Ligue em app/Config/modulos.php e rode php update.php — as permissões do modulo.json aparecem sozinhas na tela Permissões.
Sim. Com SITE_PUBLICO=false no .env o painel fica direto na raiz (para sistemas); com SITE_PUBLICO=true o site fica em "/" e o painel em "/painel".
Não. Incluir, alterar, excluir e trocar situação são feitos por AJAX com o SW.Ajax do SWCore, e continuam funcionando com e sem JavaScript.
Sim. O layout do site traz title, description, canonical, Open Graph e JSON-LD, e o projeto gera robots.txt (com os robôs de IA liberados), sitemap.xml e llms.txt a partir das Configurações do painel.
Atualizado em 12/10/2026