Open source

FacilPHP

Um arquivo, um endpoint.

Microframework PHP com roteamento baseado em arquivos, para criar APIs e aplicações fullstack rápido, sem boilerplate pesado.

Sobre o projeto

O que é o FacilPHP

O Facil é um microframework PHP com roteamento baseado em arquivos, inspirado no Next.js e voltado ao desenvolvimento rápido de APIs e aplicações fullstack. Sem boilerplate pesado: para ter um endpoint, basta criar um arquivo na pasta routes/.

Além das rotas, ele traz o essencial de uma aplicação: requisição e resposta, validação, banco de dados com um MicroORM, migrations para SQLite, autenticação por sessão, views e proteções de segurança.

Recursos

O que o FacilPHP faz

Roteamento por arquivos

routes/api/users.php responde em /api/users e routes/users/[id].php recebe o parâmetro da URL. Cada arquivo retorna os métodos HTTP mapeados a funções.

Requisição, resposta e views

Request e Response com leitura de JSON ou form-data, variáveis de ambiente pelo .env e views HTML/PHP.

Validação com pipes

Regras como min, max, in, match, password, email, url, cpf e cnpj, combinadas com o caractere |.

Banco e Query Builder

Wrapper sobre o PDO com prepared statements e um MicroORM fluente: where, update, delete, paginação e eager loading com with().

Migrations

Schema Builder com foco em SQLite, executado com php migrate.php.

Segurança embutida

Autenticação por sessão, proteção CSRF, CORS, headers contra XSS e clickjacking e upload com validação de extensão e tamanho.

FAQ

Perguntas frequentes

Como crio um projeto?

Pelo Composer: composer create-project rodrigocborges/facilphp my-app. Depois, composer run start-dev sobe o servidor em localhost:8000.

Como funcionam as rotas dinâmicas?

O nome do arquivo usa colchetes: routes/users/[id].php. O parâmetro da URL chega à função como argumento.

Que versão do PHP é preciso?

O badge do README indica PHP 8.1 ou mais novo.

O que o MicroORM faz?

É um Query Builder fluente, com insert, select, where, update, delete, paginação (data e meta) e eager loading com with().

Qual é a licença?

MIT.

Continue explorando

Veja também

Todos os projetos