定制 cloud-castle/sql-builder 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

cloud-castle/sql-builder

最新稳定版本:1.0.0.6

Composer 安装命令:

composer require cloud-castle/sql-builder

包简介

Sqlbuilder library

README 文档

README

A powerful and flexible SQL query builder library for PHP that provides a fluent interface for building complex database queries.

Features

  • Fluent interface for building SQL queries
  • Support for all major SQL operations:
    • SELECT queries with advanced features
    • INSERT operations
    • UPDATE operations
    • DELETE operations
  • Advanced query building capabilities:
    • JOIN operations (LEFT, RIGHT, INNER, etc.)
    • WHERE conditions
    • Aggregate functions (MIN, MAX, AVG, SUM)
    • DISTINCT queries
    • CASE statements
    • Subqueries
    • Table aliases
  • Type-safe implementation with strict typing
  • Clean and maintainable code structure

Installation

composer require cloud-castle/sql-builder

Usage

Basic Query Building

use CloudCastle\SqlBuilder\QueryBuilder;

$queryBuilder = new QueryBuilder();

// SELECT query
$selectQuery = $queryBuilder->select('users')
    ->columns(['id', 'name', 'email'])
    ->where('active', '=', true)
    ->toSql();

// INSERT query
$insertQuery = $queryBuilder->insert('users')
    ->values([
        'name' => 'John Doe',
        'email' => 'john@example.com'
    ])
    ->toSql();

// UPDATE query
$updateQuery = $queryBuilder->update('users')
    ->set(['active' => false])
    ->where('id', '=', 1)
    ->toSql();

// DELETE query
$deleteQuery = $queryBuilder->delete('users')
    ->where('id', '=', 1)
    ->toSql();

Advanced Features

JOIN Operations

$select = $queryBuilder->select('users');
$join = $select->join('orders', 'left')
    ->on('users.id', '=', 'orders.user_id')
    ->columns(['users.*', 'orders.total']);

Aggregate Functions

$query = $queryBuilder->select('orders')
    ->min('total', 'min_total')
    ->max('total', 'max_total')
    ->avg('total', 'avg_total')
    ->sum('total', 'total_sum');

DISTINCT Queries

$query = $queryBuilder->select('users')
    ->distinct(['email', 'name']);

CASE Statements

$select = $queryBuilder->select('orders');
$case = $select->case('status_label')
    ->when('status', '=', 'pending', 'Pending')
    ->when('status', '=', 'completed', 'Completed')
    ->else('Unknown');

Project Structure

src/
├── Common/         # Common components and utilities
├── Enums/          # Enumeration classes
├── Interfaces/     # Interface definitions
├── Query/          # Query implementation classes
├── Schema/         # Database schema related classes
└── Traits/         # Reusable traits

Requirements

  • PHP 8.3 or higher

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-05-13