承接 buildcake/sqlkit 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

buildcake/sqlkit

Composer 安装命令:

composer require buildcake/sqlkit

包简介

Camada SQL simples com drivers (MySQL agora, Oracle depois) e compilador de query com validação automática de tipos.

README 文档

README

Uma biblioteca PHP simples e poderosa para interagir com bancos de dados MySQL, fornecendo uma camada de abstração SQL com drivers e um compilador de queries com validação automática de tipos.

Características

  • Drivers de Banco de Dados: Suporte para MySQL (Oracle em desenvolvimento)
  • Validação Automática de Tipos: Conversão e validação automática de dados baseada na estrutura da tabela
  • Query Builder: Sistema de construção de queries com parâmetros seguros
  • PSR-4 Compatible: Estrutura de namespaces seguindo padrões PSR-4
  • Prepared Statements: Proteção contra SQL Injection usando PDO

Instalação

## Instalação

composer require buildcake/sqlkit

Requisitos

  • PHP >= 8.0
  • Extensão PDO habilitada
  • MySQL 5.7+ ou MariaDB 10.2+

Configuração

Configure as variáveis de ambiente ou passe um array de configuração:

// Via variáveis de ambiente
$_ENV['DB_HOST'] = 'localhost';
$_ENV['DB_NAME'] = 'meu_banco';
$_ENV['DB_USER'] = 'usuario';
$_ENV['DB_PASS'] = 'senha';
$_ENV['DB_PORT'] = '3306'; // Opcional, padrão é 3306
$_ENV['DB_TYPE'] = 'MySQL'; // Opcional, padrão é MySQL

// Ou via array de configuração
$config = [
    'DB_HOST' => 'localhost',
    'DB_NAME' => 'meu_banco',
    'DB_USER' => 'usuario',
    'DB_PASS' => 'senha',
    'DB_PORT' => '3306', // Opcional, padrão é 3306
    'DB_TYPE' => 'MySQL'
];

Uso Básico

Inicialização

use BuildCake\SqlKit\Sql;

// Inicializar com configuração padrão (usa $_ENV)
$sql = Sql::Call();

// Ou passar configuração customizada
$sql = Sql::Call($config);

Operações CRUD Simples

use BuildCake\SqlKit\Sql;

$sql = Sql::Call();

// SELECT
$resultados = $sql->Select("SELECT * FROM usuarios WHERE ativo = 1");

// INSERT
$id = $sql->Insert("INSERT INTO usuarios (nome, email) VALUES ('João', 'joao@email.com')");

// UPDATE
$sql->Update("UPDATE usuarios SET nome = 'João Silva' WHERE id = 1");

// DELETE
$sql->Delete("DELETE FROM usuarios WHERE id = 1");

Operações com Parâmetros

use BuildCake\SqlKit\Sql;

$sql = Sql::Call();

// SELECT com parâmetros
$params = [
    ['COLUMN_NAME' => 'id', 'VALUE' => 1],
    ['COLUMN_NAME' => 'ativo', 'VALUE' => true]
];
$resultados = $sql->SelectParms($params, "SELECT * FROM usuarios WHERE id = :id AND ativo = :ativo");

// INSERT com parâmetros
$params = [
    ['COLUMN_NAME' => 'nome', 'VALUE' => 'João'],
    ['COLUMN_NAME' => 'email', 'VALUE' => 'joao@email.com']
];
$id = $sql->InsertParms($params, "INSERT INTO usuarios (nome, email) VALUES (:nome, :email)");

Query Builder (BuildQuery)

A classe BuildQuery oferece métodos avançados com validação automática de tipos baseada na estrutura da tabela.

Inserir Dados (runPost)

use BuildCake\SqlKit\Query\BuildQuery;

$buildQuery = new BuildQuery();

$data = [
    'nome' => 'João Silva',
    'idade' => '25',           // Será convertido para int automaticamente
    'ativo' => 'true',         // Será convertido para 1
    'salario' => '1500.50',    // Será convertido para float
    'data_nascimento' => '1998-05-15', // Será validado como DATE
    'email' => 'joao@email.com'
];

try {
    $id = $buildQuery->runPost('usuarios', $data);
    echo "Usuário inserido com ID: $id";
} catch (Exception $e) {
    echo "Erro: " . $e->getMessage();
}

Atualizar Dados (runPut)

use BuildCake\SqlKit\Query\BuildQuery;

$buildQuery = new BuildQuery();

$updateData = [
    'id' => 1,
    'nome' => 'João Silva Atualizado',
    'idade' => 26
];

$result = $buildQuery->runPut('usuarios', $updateData);
echo "Linhas afetadas: $result";

Deletar Dados (runDelet)

use BuildCake\SqlKit\Query\BuildQuery;

$buildQuery = new BuildQuery();

// Soft delete (marca como inativo)
$ids = [1, 2, 3];
$result = $buildQuery->runDelet('usuarios', $ids);

Executar Query Customizada (runQuery)

use BuildCake\SqlKit\Query\BuildQuery;

$buildQuery = new BuildQuery();

$query = "SELECT * FROM usuarios WHERE idade > :idade AND ativo = :ativo";
$params = [
    'idade' => 18,
    'ativo' => true
];

$resultados = $buildQuery->runQuery($query, $params);

Obter Informações da Tabela

use BuildCake\SqlKit\Query\BuildQuery;

$buildQuery = new BuildQuery();

// Obter informações dos campos
$fieldsInfo = $buildQuery->getTableFieldsInfo('usuarios');

// Validar campos obrigatórios
$data = ['nome' => 'João'];
$missingFields = $buildQuery->validateRequiredFields('usuarios', $data);

if (!empty($missingFields)) {
    echo "Campos obrigatórios faltando: " . implode(', ', $missingFields);
}

Validação Automática de Tipos

A biblioteca automaticamente valida e converte tipos de dados baseado na estrutura da tabela:

  • Booleanos: Converte true/false, 'true'/'false', 1/0 para valores apropriados
  • Inteiros: Valida e converte strings numéricas para inteiros
  • Decimais: Converte para float quando necessário
  • Datas: Valida formatos DATE, DATETIME, TIMESTAMP
  • JSON: Valida e converte arrays/objetos para JSON
  • Strings: Trata e sanitiza strings

Métodos Estáticos Úteis

use BuildCake\SqlKit\Sql;

// Executar query com sanitização
$result = Sql::runQuery("SELECT * FROM usuarios WHERE nome = :nome", ['nome' => 'João']);

// Inserir dados
$id = Sql::runPost('usuarios', ['nome' => 'João', 'email' => 'joao@email.com']);

// Atualizar dados
Sql::runPut('usuarios', ['id' => 1, 'nome' => 'João Atualizado']);

// Deletar dados
Sql::runDelet('usuarios', [1, 2, 3]);

Tratamento de Erros

use BuildCake\SqlKit\Sql;
use BuildCake\SqlKit\Query\BuildQuery;

try {
    $sql = Sql::Call($config);
    $result = $sql->Select("SELECT * FROM usuarios");
} catch (Exception $e) {
    echo "Erro: " . $e->getMessage();
}

Estrutura do Projeto

src/
├── Sql.php              # Classe principal
├── Drive/
│   └── MySQLDriver.php  # Driver MySQL
└── Query/
    └── BuildQuery.php   # Query Builder com validação

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.

Licença

Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.

Autor

Desenvolvido por Felipe Machado Hillesheim

Roadmap

  • Suporte para Oracle Database
  • Suporte para PostgreSQL
  • Migrations
  • Transações
  • Cache de queries
  • Logging de queries

buildcake/sqlkit 适用场景与选型建议

buildcake/sqlkit 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 57 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 11 月 10 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「database」 「orm」 「sql」 「mysql」 「pdo」 「query-builder」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 buildcake/sqlkit 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 buildcake/sqlkit 我们能提供哪些服务?
定制开发 / 二次开发

基于 buildcake/sqlkit 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 57
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 26
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-10