omegaalfa/query-builder

Um Query Builder moderno e minimalista em PHP 8+, totalmente tipado e baseado em PDO, com suporte a cache, paginação, transações e geração fluente de SQL.

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/omegaalfa/query-builder

v1.0.0 2025-11-08 02:43 UTC

This package is not auto-updated.

Last update: 2025-11-08 23:34:01 UTC


README

PHP Version License Status PDO

🚀 Sobre o Projeto

Omgaalfa Query Builder é uma biblioteca moderna, leve e tipada em PHP 8.4+, criada para facilitar a construção fluente de queries SQL com PDO, cache, paginação e transações.

Inspirada em Eloquent e Doctrine, mas com zero dependências externas e foco em performance e simplicidade.

📦 Instalação

composer require omegaalfa/query-builder

🛠️ Requisitos

  • PHP >= 8.4
  • Extensão pdo habilitada
  • Banco de dados compatível (MySQL, MariaDB, PostgreSQL, SQLite, etc.)

⚙️ Exemplo de Uso

use Omegaalfa\QueryBuilder\Connection\PDOConnection;
use Omegaalfa\QueryBuilder\DatabaseSettings;
use Omegaalfa\QueryBuilder\QueryBuilder;
use Omegaalfa\QueryBuilder\Paginator;
use Omegaalfa\QueryBuilder\enums\SqlOperator;
use Omegaalfa\QueryBuilder\enums\OrderDirection;

// Configuração da conexão
$config = new DatabaseSettings(
    driver: 'mysql',
    host: 'localhost',
    database: 'ecommerce',
    username: 'root',
    password: '',
    port: 3306
);

// Instanciando
$connection = new PDOConnection($config);
$paginator  = new Paginator();
$query      = new QueryBuilder($connection, $paginator);

// SELECT com filtros
$sql = $query
    ->select('produtos', ['id', 'nome', 'preco'])
    ->where('preco', SqlOperator::GREATER_THAN, 100)
    ->orderBy('preco', OrderDirection::DESC)
    ->limit(10)
    ->getQuerySql();

echo $sql;
// Resultado: SELECT id, nome, preco FROM produtos WHERE preco > ? ORDER BY preco DESC LIMIT 10

📚 Recursos Suportados

  • ✅ SELECT / INSERT / UPDATE / DELETE
  • ✅ WHERE / OR WHERE / WHERE IN / WHERE BETWEEN
  • ✅ JOINs (INNER, LEFT, RIGHT, FULL)
  • ✅ ORDER BY / GROUP BY / HAVING
  • ✅ Consulta RAW (raw)
  • ✅ Paginação integrada
  • ✅ Suporte a SQL parametrizado (prepared statements)
  • ✅ Totalmente tipado (Enums e interfaces)
  • ✅ Compatível com PSR e padrão SOLID
  • ✅ Sem dependências externas

🧪 Testes

Você pode escrever testes com PHPUnit. Exemplo de comando:

vendor/bin/phpunit

✅ Roadmap

  • Suporte completo a SQL fluente
  • Enums tipadas para JOINs, operadores e ordenação
  • Paginação nativa com suporte ao total
  • Suporte a consultas RAW
  • Cache de queries (em andamento)
  • Integração com outras camadas de repositório
  • Compatibilidade multi-driver estendida

📄 Licença

Distribuído sob a licença MIT. Veja LICENSE para mais informações.

🤝 Contribuindo

Pull Requests, Issues e Forks são bem-vindos!
Siga os padrões de código e documente qualquer comportamento novo.

💬 Contato

Criado por Omegaalfa.
Para dúvidas ou sugestões: github.com/omegaalfa