verclam/doctrine-filter-paginator
A Laravel package that brings filtering and pagination to Doctrine queries. Build dynamic filters from request parameters, chain conditions onto query builders, and paginate results through a clean, reusable API for Doctrine-backed applications.
Architecture fit. Verclam/doctrine-filter-paginator is a narrow integration package: it connects Doctrine ORM's filter system to a paginator. That means it only fits Laravel codebases that have already adopted Doctrine (laravel-doctrine/orm or equivalent) instead of Eloquent. For Eloquent-first applications this is not a fit regardless of quality. For Doctrine-based Laravel apps, it targets a real gap — filter-aware pagination is one of the recurring sharp edges in Doctrine, so a focused package addresses genuine friction.
Integration feasibility. Expected to be a standard Composer package with Laravel package discovery. However, the v0.0.1 release notes contain no substantive information — only a link to the commit history. There is no documented install path, no usage example, no configuration reference, and no stated compatibility matrix. Integration effort therefore cannot be estimated from the release itself; it must be assessed by inspecting composer.json, the service provider, and the public API surface directly.
Technical risk. High for a 0.0.1. The 0.x version line carries no API stability guarantee under semver, and a single-maintainer package at first release has minimal track record. The most credible technical risk is not the package's structure but its problem domain: combining filters with pagination routinely breaks total-count calculation (DISTINCT, joins, grouped queries), and filter state management is a common source of cross-request leakage. Without a visible test suite or CI matrix, those failure modes are unverified assumptions rather than known-good behavior.
Key questions to resolve before adoption.
laravel-doctrine/orm, or on bare doctrine/orm?LengthAwarePaginator contract, or Doctrine's Paginator?Stack fit. Adoption should be gated on an existing Doctrine investment. If the application is Eloquent-based, close the evaluation here. If it already runs Doctrine under Laravel, this package is a plausible candidate for read-heavy list screens.
Migration path. Start with a single, low-consequence surface — an internal admin listing or a reporting view — rather than any customer-facing or transactional path. The goal of the pilot is to confirm count correctness under stacked filters, not to validate the developer experience.
Compatibility. Pin the exact 0.0.1 version in composer.json rather than using a caret constraint; 0.x minor bumps are permitted to break. Verify PHP and Laravel constraints against the application's runtime, and check for conflicts with the existing Doctrine bridge version. Confirm the service provider is discovered or explicitly registered.
Sequencing.
composer.json, source, and tests before installing anything.Maintenance. The code footprint is likely small, so day-to-day maintenance is low. The real cost is concentration risk: a single maintainer at v0.0.1 means abandonment is a realistic scenario. Budget for the possibility of vendoring or forking, and keep the internal wrapper boundary clean so that fork is cheap.
Support. No community, documentation, or support channel is evident from the release. Support effectively means reading the source and filing GitHub issues. Do not plan on vendor responsiveness for incident timelines.
Scaling. The scaling hotspot is the count query, not the page fetch. Filters that introduce joins or DISTINCT can turn a cheap count into a table scan, and behavior will only surface at production data volumes. Load-test filtered pagination against representative table sizes before committing.
Failure modes to monitor.
Ramp-up. Modest for a developer already comfortable with Doctrine's filter API — likely under a day. Expect most of that time to go into reading source rather than documentation, since none is provided. Developers from an Eloquent-only background should not be assigned this integration.
How can I help you explore Laravel packages today?