Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Pagination Bundle Laravel Package

gpslab/pagination-bundle

Symfony bundle integrating the gpslab/pagination library: registers pagination services, Twig helpers, and configuration so you can paginate Doctrine queries, arrays, and custom data sources with reusable page objects and simple templates.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor, and the premise needs correcting. gpslab/pagination-bundle is a Symfony bundle, not a Laravel package. The gpslab vendor publishes Symfony DI-extension bundles (domain events, command bus, pagination), and a bundle implies registration through Kernel::registerBundles(), a DependencyInjection/*Extension class, service YAML/XML config, and typically Twig helpers for rendering controls. Laravel has no bundle concept — no service container tag compiler, no bundle manifest, no Twig by default. Adopting this means dragging Symfony HttpKernel, DependencyInjection, and likely TwigBundle into a Laravel app, or bypassing the bundle entirely and using whatever underlying core library it wraps (if one is published separately — verify this first; it determines whether the package is unusable or merely inconvenient).

What v1.4.2 changes — and what it confirms. The release is a single-commit bugfix: tagging the PaginationParamConverter service. Read that carefully, because it is diagnostic rather than reassuring:

  • A ParamConverter is a Symfony HttpKernel request-mapping concept (Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter), not a Laravel construct. This release hardens a Symfony-request-pipeline dependency that has no Laravel analogue.
  • The defect class — a missing DI service tag — is exactly the DependencyInjection compiler-pass machinery Laravel's container does not implement. It is a concrete instance of the integration blocker described above, now confirmed by upstream rather than inferred.
  • Nothing in the changelog touches PHP version constraints, framework constraints, pagination semantics, or a standalone (bundle-free) distribution. Every key question below remains open on the same terms.

The second architectural problem is redundancy. Laravel already ships Illuminate\Pagination — LengthAwarePaginator, CursorPaginator, query-builder and Eloquent integration, and publishable Blade views. There is no capability gap this package fills for a Laravel stack.

Integration feasibility — low. Expect Composer friction before code friction. The release line was dormant from 2020-03-19 (v1.4.1) until this one-commit patch, and a single bugfix carries no dependency-constraint updates with it. Assume PHP ^7.x and Symfony ^3.4|^4.x. Laravel 10/11 requires PHP 8.1+, and Composer 2 will refuse the install or force a --ignore-platform-reqs override that voids any support expectation. Even if resolution succeeds, the Symfony DI wiring will not activate under Laravel's container — and the one thing v1.4.2 fixed is precisely that wiring.

Technical risk — high on maintenance, low on blast radius. The risk profile is unusual and worth stating precisely: pagination is presentation-layer plumbing. It touches no auth, crypto, session, or filesystem paths, so the security exposure is near zero. The real risk is durability — a five-year dormancy followed by a one-commit bugfix means no PHP 8.1/8.2/8.3 compatibility work, no framework-upgrade patches, and no evidence of sustained attention. 11 stars and 0 dependents means no community canary: if it breaks, you are the first to know, and there is no upstream issue thread to consult.

Key questions before any further evaluation:

  1. Is the pagination logic available as a standalone, framework-agnostic package separate from the bundle? (Decides standalone-vs-unusable. v1.4.2 gives no signal that it is — it deepens the bundle coupling instead.)
  2. What are the actual composer.json PHP and Symfony constraints, and does composer why-not resolve against our target Laravel version?
  3. Does rendering require Twig, or is the bundle page-model-only with rendering left to the host app? (Partially answered: the bundle owns request-derived pagination params via a ParamConverter, so it is not model-only.)
  4. Is there a maintained fork or successor by the same author?
  5. Does it implement offset or cursor pagination — and does it push LIMIT/OFFSET to the query builder or paginate in-memory after fetch?

Integration Approach

Stack fit: none. Treat the 0.719 composite score as an artifact of permissive licensing and an optimistic opportunity sub-score (0.76), not as evidence of fit. A high opportunity score on a package with zero dependents and a dormant release line is a signal of unclaimed surface area, not viability. The correct read is a category mismatch: right problem domain, wrong framework. A single service-tagging patch does not move this score, and should not be read as a revival signal.

Migration path: do not adopt; if already present, remove. For Laravel, the replacement is native: Model::paginate() / ->simplePaginate() with LengthAwarePaginator, withQueryString() to preserve filters, and Blade's $paginator->links() or a custom view. If the driver was a framework-agnostic paginator requirement (e.g., a shared package serving both Symfony and Laravel), Pagerfanta is the maintained equivalent with standalone and framework adapters — evaluate it as the successor rather than this bundle.

Compatibility: verify PHP 8.2/8.3, Laravel 10/11, Composer 2, and PDO/query-builder assumptions. Assume all four fail until proven otherwise; v1.4.2 modifies none of them. Note also that ParamConverter itself was deprecated in Symfony 6.2 and removed in Symfony 7, so the bundle's Symfony-side upgrade path is a dead end independently of our stack — a second reason not to build on it even if we were a Symfony shop.

Sequencing, if leadership insists on evaluation anyway:

  1. Timeboxed spike (≤1 day): attempt composer require in a throwaway Laravel 11 app; capture resolution errors verbatim. This alone likely ends the discussion.
  2. If resolution succeeds: isolate to a single listing endpoint behind an interface; do not let it spread. Explicitly do not adopt the ParamConverter path — bind request params ourselves.
  3. Fallback plan pre-agreed: swap to native paginator or Pagerfanta without touching call sites. The interface in step 2 is what makes this cheap — design it that way from the start.

Operational Impact

Maintenance: effectively unmaintained, with one caveat now on record. v1.4.2 proves the repo is not abandoned-and-archived — someone merged a patch. It does not prove cadence: one bugfix after a multi-year gap, no dependency refresh, no roadmap. MIT license remains the one genuinely favorable attribute — we can fork and patch without legal friction — but forking a pagination library means owning a pagination library, which is not a good use of engineering capacity when the framework ships one.

Support: zero. No vendor, no maintainer SLA, no community forum, and 0 dependents means no peer to ask. Any incident is self-served by whoever integrated it, and that knowledge will not exist in six months. Contrast with the native paginator, where institutional knowledge is ubiquitous among Laravel developers.

Scaling: pagination overhead itself is negligible, but confirm the implementation strategy. If it paginates in memory after a full fetch, it degrades exactly when list endpoints get large — the opposite of the intent. If it emits offset-based SQL, deep-page performance (OFFSET 100000) degrades on large tables regardless of library; Laravel's CursorPaginator addresses this and this bundle almost certainly does not.

Failure modes:

  • Composer resolution failure at install — fast, obvious, low cost. Most likely outcome.
  • Silent framework-upgrade breakage — DI service definition not found, an untagged service, or a missing Twig helper after a minor upgrade; surfaces as a 500 on one listing page, plausibly caught late. v1.4.2 is evidence this failure class is live in the package, not hypothetical.
  • ParamConverter removal (Symfony 7) — hard break on the Symfony side; irrelevant to us only because we should never get that far.
  • PHP 8 deprecation noise — dynamic property and null-coalescing warnings polluting CI, eroding signal for real issues.
  • Orphaned abstraction — the bundle survives in one endpoint after the team standardizes elsewhere, becoming permanent low-grade maintenance debt invisible to planning.

Ramp-up: the domain (page/limit/offset math) is trivially learnable, so initial onboarding cost is low — that is precisely the trap. Switching cost is what matters: framework-coupled rendering code and bundle-specific paginator types leak into Blade templates and controllers, making later replacement a refactor rather than a dependency swap. Low cost to adopt, high cost to unwind.

Recommendation: unchanged — reject for a Laravel stack. v1.4.2 is a patch-level bugfix with no breaking changes, no new capability, and no movement on PHP/framework constraints; it confirms rather than softens the Symfony-DI coupling that disqualifies the package here. Re-evaluate only if we are running Symfony and need a lightweight paginator, and even then prefer Pagerfanta on maintenance grounds.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus