Fluxo Completo — Do Zero ao Módulo em Produção
Passo a passo completo para criar, testar e publicar um módulo funcional.
Visão geral do fluxo
Criar projeto
Acesse a IDE, clique em "Novo Projeto", preencha o nome e o nome do módulo.
Desenvolver
Edite os arquivos no editor Monaco. Use o terminal para testar código PHP.
Analisar
Clique em "Analisar código" para verificar erros antes de publicar.
Ativar
Clique em "Ativar". Instala deps, roda migrations e ativa as rotas imediatamente.
Testar
Use o API Route Tester (Ctrl+T) para testar as rotas diretamente na IDE.
Passo 1 — Criar o projeto
- Acesse
/dashboard/ide - Clique em "Novo Projeto"
- Preencha: Nome do projeto (ex: "Loja de Produtos") e Nome do módulo em PascalCase (ex:
Produto) - Marque "Gerar estrutura padrão"
- Clique em "Criar Projeto" — a IDE abre automaticamente
Passo 2 — Configurar o banco de dados
Abra Database/connection.php e defina qual banco usar:
<?php
return 'core'; // usa DB_* do .env
Abra Database/Migrations/ e edite a migration para criar sua tabela:
'up' => function (PDO $pdo): void {
$driver = $pdo->getAttribute(PDO::ATTR_DRIVER_NAME);
if ($driver === 'pgsql') {
$pdo->exec("CREATE TABLE IF NOT EXISTS produtos (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
nome VARCHAR(255) NOT NULL,
preco DECIMAL(10,2) NOT NULL DEFAULT 0,
criado_em TIMESTAMPTZ NOT NULL DEFAULT NOW()
)");
} else {
$pdo->exec("CREATE TABLE IF NOT EXISTS produtos (
id CHAR(36) PRIMARY KEY,
nome VARCHAR(255) NOT NULL,
preco DECIMAL(10,2) NOT NULL DEFAULT 0,
criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
}
},
Passo 3 — Definir as rotas
Abra Routes/web.php e defina as rotas com os middlewares adequados:
<?php
use Src\Modules\Produto\Controllers\ProdutoController;
use Src\Kernel\Middlewares\AuthHybridMiddleware;
use Src\Kernel\Middlewares\AdminOnlyMiddleware;
/** @var \Src\Kernel\Contracts\RouterInterface $router */
$auth = [AuthHybridMiddleware::class];
$admin = [AuthHybridMiddleware::class, AdminOnlyMiddleware::class];
$router->get('/api/produto', [ProdutoController::class, 'listar'], $auth);
$router->get('/api/produto/{id}', [ProdutoController::class, 'buscar'], $auth);
$router->post('/api/produto', [ProdutoController::class, 'criar'], $auth);
$router->put('/api/produto/{id}', [ProdutoController::class, 'atualizar'], $auth);
$router->delete('/api/produto/{id}', [ProdutoController::class, 'deletar'], $admin);
Passo 4 — Analisar e corrigir
- No painel lateral da IDE, clique em "Analisar código"
- Se houver erros, clique em "Corrigir automaticamente"
- Corrija manualmente os erros que não têm correção automática
- Repita até não haver erros bloqueantes
Passo 5 — Ativar o módulo
O módulo já existe em src/Modules/Produto/ desde a criação — cada arquivo salvo é sincronizado automaticamente. Quando estiver pronto, clique em "Ativar" no painel lateral. O sistema:
- Instala dependências declaradas no
composer.jsondo módulo - Executa as migrations — a tabela
produtosé criada - Executa os seeders automaticamente
- Ativa as rotas — ficam disponíveis imediatamente na API
Passo 6 — Testar as rotas
- Pressione
Ctrl + Tpara abrir o API Route Tester - Na aba "Rotas", clique em
GET /api/produto - Na aba "Auth", selecione Bearer Token e cole seu token JWT
- Clique em "Enviar" — veja a resposta em tempo real
- Salve a requisição clicando em "Salvar" para reutilizar depois
No API Route Tester, faça um POST para /api/login com {"login": "seu_usuario", "senha": "sua_senha"}. O campo access_token da resposta é o Bearer token para usar nas outras requisições.
Passo 6 — Conectar ao frontend (opcional)
Se precisar conectar uma aplicação frontend externa, envie um e-mail para [email protected] com a URL do seu frontend. O admin adicionará ao CORS e sua aplicação poderá fazer requisições à API.