Switon's fresh-query and shard-aware SQL layer for fluent filters, pagination, and merged reads.
- Fresh query objects:
QueryBuilderInterface::from()starts a fresh query each time. - Fluent read building:
QueryInterfacechains filters, joins, ordering, grouping, limits, and pagination. - Shard-aware execution:
Querycan resolve shards and merge multi-shard results. - Explicit table context:
Tablecarries table name and connection together when routing matters. - Paging support:
Paginatorkeeps page boundaries explicit.
composer require switon/queryuse 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
MIT.