Por que PivotPHP?

O Microframework PHP Evolutivo Rápido, sem opiniões, minimalista. Construído para performance, projetado para evoluir.

Última Versão Status Build Licença Versão PHP Performance


🎯 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


🛠️ 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);

Mais Exemplos →


🌟 Ecossistema

Pacotes Oficiais

Pacotes da Comunidade

Navegar por todos os pacotes →


🤝 Comunidade

Junte-se à comunidade PivotPHP e ajude a moldar o futuro do desenvolvimento PHP:

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!

Diretrizes de Contribuição →


📄 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.”



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
**⭐ Dê uma estrela no GitHub — isso ajuda!** **Feito com ❤️ pela comunidade PHP, para a comunidade PHP.** *PivotPHP: O framework que evolui com seu projeto.*