Por que PivotPHP?
O Microframework PHP Evolutivo Rápido, sem opiniões, minimalista. Construído para performance, projetado para evoluir.
🎯 Por que PivotPHP?
Depois de 6 anos construindo APIs de alta performance, sempre esbarrava na mesma parede com frameworks PHP—todos pareciam pesados, opinativos e restritivos. Vindo do Node.js, sentia falta da elegância do Express.js: simples, flexível e poderoso. Numa tarde, frustrado com mais um framework rígido me forçando a pensar do jeito dele, comecei a construir o que se tornaria o PivotPHP.
O que começou como ExpressPHP virou algo maior. Conforme o projeto evoluía, percebi que não era só sobre copiar o Express.js—era sobre criar um framework que realmente se adapta às suas necessidades. Como o DNA que se molda a diferentes ambientes, o PivotPHP se adapta ao seu projeto sem perder sua identidade central. Sem padrões forçados, sem recursos inchados, apenas PHP limpo que não atrapalha seu caminho.
O PivotPHP não te diz como construir sua API. Em vez disso, te dá as ferramentas para construí-la do seu jeito.
<?php
require 'vendor/autoload.php';
use PivotPHP\App;
$app = new App();
// Rota simples
$app->get('/ola/:nome', function($req, $res) {
$res->json(['mensagem' => "Olá, {$req->params->nome}!"]);
});
// Middleware que simplesmente funciona
$app->use('/api/*', function($req, $res, $next) {
$res->header('Content-Type', 'application/json');
$next();
});
// Recurso RESTful
$app->get('/usuarios/:id', function($req, $res) {
$usuario = Usuario::find($req->params->id);
$res->json($usuario);
});
$app->listen(8000);
⚡ 2 minutos. É tudo que você precisa para construir sua primeira API pronta para produção.
🚀 Instalação
composer require pivotphp/pivotphp-core
Requisitos:
- PHP 8.1 ou superior
- Composer
Extensões Opcionais:
# Para integração com banco de dados
composer require pivotphp/pivotphp-cycle-orm
# Para middleware adicional
composer require pivotphp/middleware-collection
✨ Recursos Principais
🧬 Arquitetura Evolutiva
O PivotPHP se adapta às suas necessidades, não o contrário. Comece simples, escale complexo.
// Comece simples
$app->get('/', fn() => 'Olá Mundo');
// Evolua naturalmente
$app->group('/api/v1', function($group) {
$group->middleware([AuthMiddleware::class, RateLimitMiddleware::class]);
$group->resource('/usuarios', UsuarioController::class);
});
⚡ Performance Blazing
52M+ operações/segundo. Construído para velocidade desde o início.
// Roteamento otimizado com cache zero-config
$app->get('/rapido/:id/dados/:tipo', function($req, $res) {
// Correspondência de rotas auto-cacheada
// Extração de parâmetros type-safe
// Tratamento de resposta memory-efficient
$res->json($dados);
});
🎛️ Sintaxe Inspirada no Express.js
Se você conhece Express.js, já conhece o PivotPHP.
// Padrão de middleware familiar
$app->use(function($req, $res, $next) {
$req->startTime = microtime(true);
$next();
$duracao = microtime(true) - $req->startTime;
$res->header('X-Response-Time', $duracao . 'ms');
});
🛡️ Segurança por Design
Segurança pronta para produção sem sobrecarga de configuração.
// Auto-sanitização e validação
$app->post('/usuarios', function($req, $res) {
$dados = $req->validate([
'email' => 'required|email',
'nome' => 'required|string|max:100'
]);
// $dados é automaticamente sanitizado e validado
$usuario = Usuario::create($dados);
$res->json($usuario, 201);
});
🔧 Zero Configuração
Funciona perfeitamente fora da caixa, configurável quando você precisar.
// Nenhum arquivo de config necessário
$app = new App();
// Mas flexível quando você precisa de controle
$app = new App([
'debug' => true,
'cors' => ['origin' => 'localhost:3000'],
'cache' => ['driver' => 'redis', 'host' => 'localhost']
]);
📊 Performance
O PivotPHP entrega performance excepcional sem sacrificar a experiência do desenvolvedor:
Framework | Requests/seg | Uso Memória | Tempo Resposta |
---|---|---|---|
PivotPHP | 52.000+ | 8.2 MB | 0.05ms |
Framework A | 12.000 | 12.5 MB | 0.12ms |
Framework B | 15.000 | 10.1 MB | 0.08ms |
Framework C | 3.500 | 25.7 MB | 0.35ms |
Benchmarks executados no PHP 8.2, single-threaded, resposta JSON simples. Ver benchmarks completos →
📚 Documentação
- Guia de Início Rápido - Configure e rode em 5 minutos
- Referência da API - Documentação completa de métodos
- Galeria de Exemplos - Aplicações do mundo real
- Guia de Migração - Vindo de outros frameworks
- Guia de Performance - Melhores práticas de otimização
🛠️ Exemplos
API REST com Banco de Dados
<?php
use PivotPHP\App;
use PivotPHP\Database\DB;
$app = new App();
// Auto-conecta banco de dados
DB::connect('mysql://user:pass@localhost/meudb');
$app->get('/usuarios', function($req, $res) {
$usuarios = DB::table('usuarios')->get();
$res->json($usuarios);
});
$app->post('/usuarios', function($req, $res) {
$usuario = DB::table('usuarios')->create($req->body);
$res->json($usuario, 201);
});
$app->listen(8000);
Microserviço com Autenticação
<?php
use PivotPHP\App;
use PivotPHP\Middleware\{Auth, CORS, RateLimit};
$app = new App();
// Middleware global
$app->use(CORS::allow('*'));
$app->use(RateLimit::perMinute(100));
// Rotas protegidas
$app->group('/api', function($group) {
$group->middleware(Auth::jwt());
$group->get('/perfil', function($req, $res) {
$res->json($req->user);
});
$group->post('/posts', function($req, $res) {
$post = Post::create([
'user_id' => $req->user->id,
'conteudo' => $req->body->conteudo
]);
$res->json($post, 201);
});
});
$app->listen(8000);
API Real-time com WebSockets
<?php
use PivotPHP\App;
use PivotPHP\WebSocket\Server;
$app = new App();
// Rotas HTTP
$app->get('/health', fn() => ['status' => 'ok']);
// Servidor WebSocket
$ws = new Server($app);
$ws->on('connection', function($socket) {
$socket->emit('welcome', ['mensagem' => 'Conectado ao PivotPHP']);
});
$ws->on('message', function($socket, $dados) {
// Broadcast para todos os clientes conectados
$socket->broadcast('update', $dados);
});
$app->listen(8000, $ws);
🌟 Ecossistema
Pacotes Oficiais
- pivotphp/pivotphp-cycle-orm - Integração com banco de dados ORM
- pivotphp/middleware-collection - Middleware comum
- pivotphp/jwt-auth - Autenticação JWT
- pivotphp/cache - Cache multi-driver
Pacotes da Comunidade
- pivotphp/testing - Utilitários de teste
- pivotphp/swagger - Documentação OpenAPI
- pivotphp/queue - Processamento de jobs em background
Navegar por todos os pacotes →
🤝 Comunidade
Junte-se à comunidade PivotPHP e ajude a moldar o futuro do desenvolvimento PHP:
- GitHub Discussions - Perguntas, ideias e anúncios
- Servidor Discord - Chat da comunidade em tempo real
- Twitter - Atualizações e novidades
- Stack Overflow - Q&A técnico
Contribuindo
O PivotPHP existe porque a comunidade PHP merece algo melhor. Seja corrigindo typos, reportando bugs ou propondo novos recursos, você está ajudando a tornar essa visão realidade.
# Faça fork e clone
git clone https://github.com/pivotphp/pivotphp-core.git
cd pivotphp-core
# Instale dependências
composer install
# Execute testes
composer test
# Faça suas mudanças e submeta um PR!
📄 Licença
O PivotPHP é um software open-source licenciado sob a licença MIT.
👨💻 Sobre o Autor
Caio Alberto Fernandes - 6 anos de experiência em desenvolvimento de APIs backend “Construindo ferramentas que se adaptam aos desenvolvedores, não o contrário.”
- GitHub: @CAFernandes
- LinkedIn: caio-alberto-fernandes
- PivotPHP Org: github.com/pivotphp
🔗 Links
- Site Oficial - Site oficial do PivotPHP
- Documentação - Documentação completa
- Packagist - Pacote Composer
- Benchmarks - Comparações de performance
Join the Evolution
PivotPHP isn’t just another framework. It’s a return to simplicity, performance, and developer happiness. Whether you’re building a simple API or a complex microservices architecture, PivotPHP adapts to your needs.
Ready to evolve your PHP development?
Get Started Now | View on GitHub |