PHPackages                             elias-antonio/php-mvc - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. elias-antonio/php-mvc

ActiveProject[Framework](/categories/framework)

elias-antonio/php-mvc
=====================

PHP MVC Boilerplate — framework MVC leve e reutilizável para projetos PHP puro

v1.0.0(1w ago)01↓100%[1 issues](https://github.com/eliasdossantos/php-mvc/issues)UnlicensePHPPHP &gt;=8.1CI failing

Since May 31Pushed 6d agoCompare

[ Source](https://github.com/eliasdossantos/php-mvc)[ Packagist](https://packagist.org/packages/elias-antonio/php-mvc)[ Docs](https://github.com/eliasdossantos/php-mvc)[ RSS](/packages/elias-antonio-php-mvc/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (2)Dependencies (3)Versions (2)Used By (0)

PHP MVC Boilerplate
===================

[](#php-mvc-boilerplate)

> Boilerplate profissional em PHP puro com arquitetura MVC moderna, escalável e reutilizável.

[![PHP](https://camo.githubusercontent.com/fac71be1c6a3b46f084fc037fdd19c1e6b1ed27e26ad9dec038b5335a3aedd86/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532422d3737376262343f6c6f676f3d706870)](https://php.net)[![License](https://camo.githubusercontent.com/24153847f2d2b1db40dceeb28a57467888b3e8abb0824fb5971447852370a642/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c2d2d332e302d726564)](LICENSE)[![PSR-4](https://camo.githubusercontent.com/c416f1334a661f437773206e7315041b2e32b1c58c9c1255560650a4b52e64ff/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6175746f6c6f61642d5053522d2d342d626c7565)](#)

---

Sobre o Projeto
---------------

[](#sobre-o-projeto)

O **PHP MVC Boilerplate** é uma base reutilizável para desenvolvimento de aplicações web em PHP puro, construída com foco em organização, escalabilidade, segurança e boas práticas de desenvolvimento.

Inspirado nos conceitos utilizados por frameworks modernos, o projeto fornece uma estrutura sólida baseada no padrão **Model-View-Controller (MVC)**, permitindo que o desenvolvedor foque nas regras de negócio sem precisar recriar a infraestrutura básica a cada novo sistema.

O objetivo é oferecer uma alternativa leve e flexível para quem deseja utilizar PHP puro sem abrir mão de recursos essenciais encontrados nos principais frameworks do mercado.

---

Principais Recursos
-------------------

[](#principais-recursos)

### Arquitetura MVC

[](#arquitetura-mvc)

- Estrutura MVC completa
- Separação clara de responsabilidades
- Organização modular e escalável
- Fácil manutenção e evolução

### Sistema de Rotas

[](#sistema-de-rotas)

- Rotas nomeadas
- Parâmetros dinâmicos
- Grupos de rotas
- Middlewares por rota
- Redirecionamentos

### Autenticação

[](#autenticação)

- Login
- Logout
- Registro de usuários
- Recuperação de senha
- Controle de acesso por perfis
- Proteção de rotas

### Validação

[](#validação)

- Mais de 20 regras de validação
- Mensagens personalizadas
- Form Requests
- Redirecionamento automático
- Preservação de dados enviados

### Banco de Dados

[](#banco-de-dados)

- PDO
- Query Builder
- Prepared Statements
- Transações
- Migrations
- Seeders

### Upload de Arquivos

[](#upload-de-arquivos)

- Upload seguro
- Validação por MIME real
- Renomeação automática
- Organização por diretórios

### E-mails

[](#e-mails)

- Integração com PHPMailer
- Templates reutilizáveis
- Configuração via ambiente

### Logs

[](#logs)

- Logs estruturados
- Compatível com conceitos PSR-3
- Registro de erros e eventos

### CLI

[](#cli)

Comandos para geração rápida de código:

- Controllers
- Models
- Requests
- Services
- Repositories
- Views
- Migrations
- Seeders
- Key generation (`php mvc key:generate`)

---

Segurança
---------

[](#segurança)

O projeto possui mecanismos nativos para mitigação das vulnerabilidades mais comuns:

- Proteção CSRF
- Prevenção contra SQL Injection
- Escape automático contra XSS
- Sessões seguras
- Security Headers
- Prepared Statements obrigatórios
- Controle de acesso por middleware

---

Documentação
------------

[](#documentação)

A documentação completa está disponível em:

```
docs/index.html

```

Abra o arquivo em seu navegador para acessar:

- Guias de instalação
- Exemplos práticos
- Referência da API
- Estrutura do framework
- Criação de módulos

---

Instalação
----------

[](#instalação)

### Via Composer

[](#via-composer)

```
composer create-project eliasdossantos/php-mvc
```

### Instalação Manual

[](#instalação-manual)

```
git clone https://github.com/eliasdossantos/php-mvc.git

cd php-mvc

composer install
```

---

Configuração
------------

[](#configuração)

Copie o arquivo de ambiente:

```
cp .env.example .env
```

Configure:

```
APP_NAME=PHP MVC
APP_ENV=local

DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=php_mvc
DB_USERNAME=root
DB_PASSWORD=
```

---

Banco de Dados Migrations (Criar e Aplicar)
-------------------------------------------

[](#banco-de-dados-migrations-criar-e-aplicar)

Crie uma nova migration SQL com o comando generator. O arquivo será criado em `database/migrations/` com prefixo numérico sequencial (`001_`, `002_`, ...).

Exemplos:

```
php mvc make:migration CreatePostsTable
php mvc make:migration AddEmailToUsers
php mvc make:migration drop_comments_table
```

O comando converte o nome para snake\_case e gera um arquivo como `002_create_posts_table.sql`. Dentro dele há um template comentado — descomente e ajuste o `CREATE TABLE` conforme sua necessidade. O nome da tabela gerado automaticamente é baseado no nome fornecido (`CreatePostsTable` → `posts`).

Depois de editar sua migration, aplique as migrations pendentes com:

```
php mvc migrate
```

Se quiser recriar tudo do zero (DROP + migrate):

```
php mvc migrate --fresh
```

Dica rápida:

- Os arquivos de migration ficam em `database/migrations/` e são executados em ordem crescente pelo prefixo numérico.
- Verifique se o `CREATE TABLE` está com o nome da tabela correto (ex.: `posts`, `users`) e com os campos desejados.

---

Executando o Projeto
--------------------

[](#executando-o-projeto)

Servidor local:

```
php mvc serve
```

Servidor em porta específica:

```
php mvc serve --port=8080
```

---

Comandos Disponíveis
--------------------

[](#comandos-disponíveis)

### Geradores

[](#geradores)

```
php mvc make:controller UserController

php mvc make:model User

php mvc make:request StoreUserRequest

php mvc make:service UserService

php mvc make:repository UserRepository

php mvc make:seed UserSeeder

php mvc make:view users
```

### Configuração

[](#configuração-1)

```
php mvc key:generate
```

Gera ou atualiza a variável `APP_KEY` no arquivo `.env` com uma chave segura de 32 caracteres.

### Informações

[](#informações)

```
php mvc list

php mvc help
```

---

Estrutura do Projeto
--------------------

[](#estrutura-do-projeto)

```
php-mvc/
│
├── app/
│   ├── Core/
│   ├── Controllers/
│   ├── Models/
│   ├── Requests/
│   ├── Services/
│   ├── Repositories/
│   ├── Middlewares/
│   ├── Helpers/
│   └── Views/
│
├── bootstrap/
├── config/
├── database/
├── docs/
├── public/
├── routes/
├── storage/
│
├── composer.json
├── .env.example
└── README.md

```

---

Classes Principais
------------------

[](#classes-principais)

ClasseResponsabilidadeApplicationInicialização da aplicaçãoRouterGerenciamento de rotasControllerClasse base dos controllersModelClasse base dos modelsDatabaseConexão PDOSessionGerenciamento de sessõesAuthAutenticaçãoValidatorValidação de dadosUploadUpload de arquivosLoggerSistema de logsRequestManipulação de requisiçõesServiceRegras de negócioRepositoryCamada de acesso a dados---

Requisitos
----------

[](#requisitos)

- PHP 8.1 ou superior
- Composer 2+
- MySQL 5.7+ ou MariaDB 10+
- Extensão PDO
- Extensão OpenSSL
- Extensão Mbstring
- Extensão JSON

---

Testes
------

[](#testes)

Execute:

```
composer test
```

---

Contribuições
-------------

[](#contribuições)

Contribuições são bem-vindas.

Caso deseje contribuir:

1. Faça um Fork;
2. Crie uma branch;
3. Faça suas alterações;
4. Envie um Pull Request.

Leia também:

```
CONTRIBUTING.md

```

Ao contribuir, você concorda que sua contribuição será licenciada sob os termos da GPL-3.0.

---

Changelog
---------

[](#changelog)

Consulte:

```
CHANGELOG.md

```

---

Licença
-------

[](#licença)

Copyright (C) 2026 Elias dos Santos

Este projeto está licenciado sob os termos da **GNU General Public License v3.0 (GPL-3.0)**.

Você tem liberdade para:

- Utilizar o software;
- Estudar o código-fonte;
- Modificar o projeto;
- Distribuir cópias;
- Distribuir versões modificadas.

Desde que:

- Preserve os avisos de copyright;
- Mantenha a licença GPL-3.0;
- Disponibilize o código-fonte correspondente ao distribuir versões modificadas.

Este software é fornecido **"COMO ESTÁ"**, sem qualquer garantia expressa ou implícita.

Licença completa:

---

⭐ Se este projeto foi útil para você, considere deixar uma estrela no GitHub.

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance98

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

10d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a13d441698e9bfea1209bbb7f916232f995b7eb9e867bcffbcdee0e48e05e689?d=identicon)[EliasAntonio](/maintainers/EliasAntonio)

---

Top Contributors

[![eliasdossantos](https://avatars.githubusercontent.com/u/105184013?v=4)](https://github.com/eliasdossantos "eliasdossantos (10 commits)")

---

Tags

phpframeworkrouterormmvcboilerplate

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/elias-antonio-php-mvc/health.svg)

```
[![Health](https://phpackages.com/badges/elias-antonio-php-mvc/health.svg)](https://phpackages.com/packages/elias-antonio-php-mvc)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
