DOCUMENTAÇÃO TÉCNICA · VERSÃO 2.0.0
PHP MVC
Framework
Uma base MVC em PHP, organizada para você entender o fluxo e estender o que realmente existe no código.
PHP ≥ 8.1 · Composer · MySQL/PDO · Sem dependências de frontend
controller → service
model → view ✓
Acesso rápido
Instalação rápida
composer create-project elias-antonio/php-mvc php-mvc
cd php-mvc
# O script pós-criação copia .env.example e instala dependências.
# Ajuste .env; se necessário, gere APP_KEY.
php mvc key:generate
php mvc migrate
php mvc serveConfigure APP_URL, banco MySQL e variáveis de ambiente antes de iniciar. Em produção, APP_URL é obrigatória. Veja o guia completo de instalação.
Rota implementada no projeto
$router->get('/', [HomeController::class, 'index'])->name('home');
Mapa da documentação
Os guias são modulares por recurso. Use a busca para consultar classes, regras, helpers e comandos. A referência de API inclui as assinaturas extraídas do código.
Roteiro recomendado
Para sair do mapa geral e chegar a um primeiro fluxo funcional, siga esta ordem. Cada etapa aponta para o guia que explica as decisões, não apenas os comandos.
| Etapa | O que verificar | Próximo guia |
|---|---|---|
| 1 · Preparar | PHP, Composer, MySQL e arquivo de ambiente | Instalação |
| 2 · Entender o fluxo | Entrada HTTP, Router, middleware, action e resposta | Ciclo da requisição |
| 3 · Criar uma interface | Rota, Controller, Request e View | Roteamento |
| 4 · Persistir dados | Model, consultas parametrizadas e migrations | Models |
| 5 · Proteger entradas | Validação, sessão, CSRF e autenticação | Validação |
Primeiro ciclo verificável
Depois de configurar o banco, use o CLI para conferir os comandos disponíveis, aplicar migrations pendentes e iniciar o servidor local. Execute os comandos na raiz do projeto; o servidor local não substitui a configuração do servidor web de produção.
php mvc list
php mvc migrate
php mvc serveAntes de experimentar rotas, confirme APP_URL e as credenciais MySQL. Para investigar uma requisição completa, siga o ciclo da requisição.
Comportamento atual da rota inicial
A implementação da rota / distingue visitantes e usuários autenticados. Para visitantes, HomeController::index() renderiza home.index com o layout home. Para usuários autenticados, a action chama redirect('dashboard').
/ e URLs absolutas permitidas; a string relativa dashboard é rejeitada e substituída pelo fallback de APP_URL (ou /). Assim, o fluxo atual não garante o destino /dashboard e pode redirecionar para a própria home repetidamente. Não trate o redirecionamento como funcional até corrigir o chamador para usar /dashboard e testar a configuração da URL base. A documentação registra o comportamento presente; não altera o código do framework.