switon/query

Fluent read SQL builder with joins, pagination, and shard-aware execution for Switon Framework

Maintainers

Package info

github.com/switon-php/query

Documentation

pkg:composer/switon/query

Statistics

Installs: 6

Dependents: 2

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-06-06 13:43 UTC

This package is auto-updated.

Last update: 2026-06-07 04:34:02 UTC


README

Query CI PHP 8.3+

Switon's fresh-query and shard-aware SQL layer for fluent filters, pagination, and merged reads.

Highlights

  • Fresh query objects: QueryBuilderInterface::from() starts a fresh query each time.
  • Fluent read building: QueryInterface chains filters, joins, ordering, grouping, limits, and pagination.
  • Shard-aware execution: Query can resolve shards and merge multi-shard results.
  • Explicit table context: Table carries table name and connection together when routing matters.
  • Paging support: Paginator keeps page boundaries explicit.

Installation

composer require switon/query

Quick Start

use Switon\Core\Attribute\Autowired;
use Switon\Query\QueryBuilderInterface;
use Switon\Query\PaginatorInterface;

final class UserService
{
    #[Autowired] protected QueryBuilderInterface $queryBuilder;

    public function listAction(int $page = 1): PaginatorInterface
    {
        return $this->queryBuilder->from('users')
            ->where(['status' => 1])
            ->orderBy(['created_at' => SORT_DESC])
            ->paginate($page, 10);
    }
}

Docs: https://docs.switon.dev/latest/query

License

MIT.