Skip to content

Latest commit

 

History

History
46 lines (33 loc) · 1.44 KB

File metadata and controls

46 lines (33 loc) · 1.44 KB

Switon Query Package

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.