hongxunpan/eloquent-query-dsl
A fluent query DSL for Laravel's Eloquent ORM that lets you build database queries with a clean, chainable syntax. Simplifies complex filtering, sorting, and relationship queries into readable, expressive code for more maintainable models and repositories.
cursor input is a sibling of page and mutually exclusive with it, so each resource gets one explicit pagination mode instead of an ambiguous default. Page-based stays right for back-office tables and anything needing jump-to-page or total counts; cursor-based becomes viable for infinite-scroll feeds, activity streams, and high-volume lists where deep OFFSET degrades.DslInputMap supports custom cursor parameter names and the existing page-number API remains compatible, so cursor pagination can be introduced per endpoint behind a flag or new API version. That is a product bet we can stage and measure (latency, error rates, client adoption) rather than a big-bang change.Illuminate cursor construction, and structured output are commodity plumbing; adopting a package here saves days of per-service reimplementation and keeps contracts consistent across teams. The parts that are genuinely ours — query execution, permissions, response envelope — stay in the application layer by design, so there is no meaningful lock-in on the decisions that matter.next / previous cursors and a directly debuggable position parameter reduce the cost of diagnosing customer pagination bugs — support and on-call can inspect cursor state instead of reverse-engineering opaque tokens.Consider it when:
Look elsewhere when:
For executives: a low-cost, low-risk capability addition. It lets us offer modern cursor pagination on high-traffic and real-time lists while keeping every existing page-number API working unchanged — no migration deadline and no breaking change for customers. Quality gates are green across the board (35 tests / 80 assertions, PHPStan level 8, code style, security audit, full CI matrix), and the dependency footprint is a small shared package, not a platform commitment.
For engineering: release 0.4.0 adds a structured cursor input mutually exclusive with page, bidirectional next / previous cursors, a debuggable position parameter, and configurable cursor parameter names via DslInputMap. QueryDsl::apply() now selects pagination mode from raw input keys, so parser defaults can no longer silently select page mode. The boundary is deliberate: the package validates cursor input, builds Illuminate cursors, and returns structured output; we keep query execution, authorization, and response structure. Small surface area, well-tested, and safe to adopt per endpoint. Recommend pinning to 0.4.x given the pre-1.0 version.
How can I help you explore Laravel packages today?