Skip to content

switon-php/query

Repository files navigation

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.

About

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

Topics

Resources

License

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages