thiagowip / simple-database-manager
Uma biblioteca PHP simples e elegante para gerenciar conexões de banco de dados com paginação automática e suite completa de testes
v1.1.1
2025-07-17 09:41 UTC
Requires
- php: >=7.4
- ext-pdo: *
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2025-07-17 09:45:08 UTC
README
Uma biblioteca PHP simples e elegante para gerenciar conexões de banco de dados com paginação automática.
Características
- Inicialização automática - Uma linha configura tudo
- Seguro - Prepared statements e validação
- Paginação elegante - Sistema completo de paginação
- Sintaxe de objeto -
$data->total
em vez de$data['total']
- PHP 7.4+ - Tipagem forte e recursos modernos
Instalação
composer require thiagowip/simple-database-manager
Configuração
Crie um arquivo .env
na raiz do projeto:
DB_HOST=127.0.0.1 DB_USER=root DB_PASS= DB_NAME=your_database
Uso Básico
Inicialização
<?php require 'vendor/autoload.php'; use ThiagoWip\SimpleDatabaseManager\App; // Carrega .env, conecta banco e inicializa tudo automaticamente $app = App::boot();
CRUD Simples
$db = $app->getDatabase(); // Inserir $db->insert('users', ['name' => 'João', 'email' => 'joao@email.com']); // Buscar um $user = $db->getSingle('users', 1); echo $user->name; // Sintaxe de objeto // Atualizar $db->update('users', ['name' => 'João Santos'], 1); // Deletar $db->delete('users', 1); // Buscar todos $users = $db->getAll('users');
Paginação
// Criar paginador (10 itens por página) $paginator = $app->createPaginator('users', 10); $data = $paginator->getResult(); // Informações da paginação echo "Total: {$data->total} | Página {$data->currentPage} de {$data->totalPages}"; // Exibir dados foreach ($data->data as $user) { echo "{$user->name} - {$user->email}<br>"; } // Links de navegação echo $paginator->render();
Exemplos Práticos
A biblioteca inclui exemplos completos na pasta examples/
:
Arquivo | Descrição |
---|---|
crud_basico.php |
Operações básicas de CRUD |
listagem_completa.php |
Lista todos os dados sem paginação |
busca_com_filtros.php |
Sistema de busca com filtros |
busca_melhorada.php |
Busca avançada com score de relevância |
Como executar os exemplos
# Iniciar servidor local php -S localhost:8000 # Acessar exemplos http://localhost:8000/examples/crud_basico.php
Busca Personalizada
$db = $app->getDatabase(); // Busca com prepared statements $sql = "SELECT * FROM users WHERE name LIKE :search"; $stmt = $db->getConnection()->prepare($sql); $stmt->execute(['search' => '%João%']); $users = $stmt->fetchAll();
Segurança
- Prepared Statements - Proteção contra SQL Injection
- Validação de entrada - Nomes de tabelas validados
- Tipagem forte - Previne erros em runtime
Requisitos
- PHP >= 7.4
- PDO extension
- MySQL/MariaDB
Testes
A biblioteca inclui uma suite completa de testes:
# Executar todos os testes composer test # Apenas testes unitários vendor/bin/phpunit tests/Unit/ # Apenas testes de integração vendor/bin/phpunit tests/Integration/ # Com cobertura de código composer test-coverage
O que é testado:
- ✅ Operações CRUD - Insert, update, delete, select
- ✅ Sintaxe de objeto - Sempre
$data->propriedade
, nunca arrays - ✅ Segurança - Prepared statements e validação
- ✅ Paginação - Cálculos e renderização
- ✅ Padrão Singleton - App::boot() funcional
- ✅ Workflow completo - Testes de integração
Veja tests/README.md para documentação completa dos testes.
Licença
MIT License. Veja LICENSE para detalhes.
Contribuição
- Fork o projeto
- Crie uma branch (
git checkout -b feature/nova-feature
) - Commit suas mudanças (
git commit -m 'Adiciona nova feature'
) - Push para a branch (
git push origin feature/nova-feature
) - Abra um Pull Request
⭐ Gostou do projeto? Dê uma estrela no GitHub!