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

mazarini/pagination-bundle

mazarini/pagination-bundle provides straightforward pagination for PHP/Symfony applications. Configure page sizes, paginate result sets, and render consistent navigation with bundle services and template helpers for cleaner list and search pages.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — primary finding: this is not a Laravel package. mazarini/pagination-bundle is a Symfony bundle built against Doctrine ORM. It integrates through Symfony's bundle registration (config/bundles.php), the DI container, and (almost certainly) Twig templates — none of which exist in Laravel. Laravel pagination is a first-class framework primitive (LengthAwarePaginator, CursorPaginator, paginate() on Eloquent/Query Builder) with Blade-rendered links. There is no bundle system, no Doctrine-first data layer by default, and no Twig. The premise of "Laravel/PHP package" holds only in the narrow sense that both are PHP.

Integration feasibility — low as a direct dependency, moderate as a reference implementation.

  • Direct install into Laravel: not viable without laravel-doctrine/orm plus a custom adapter, and the bundle's Symfony-coupled service wiring would still not resolve.
  • Extractable core: pagination math (current page, per-page, offset/limit, total, page-window/ellipsis logic) is a small, well-bounded surface — realistically a few hundred lines. That portion is portable into a Laravel service or custom paginator in days, not weeks.
  • License: GPL-3.0 is copyleft. Fine for internal/SaaS-only use in most interpretations, but redistributing a derivative inside a shipped product or SDK triggers source-disclosure obligations. This requires legal sign-off before any code is copied, not after.

Technical risk — dominated by project health, not by code complexity.

  • Adoption signal: 1 star, 0 dependents, composite score 0.305. Effectively no user base validating it in production.
  • Bus factor: single-maintainer package with no visible community, no downstream dependents, and no evidence of an active release cadence. Abandonment risk is high; security-patch latency is unbounded.
  • Compatibility debt unknown: PHP 8.x support, Symfony 6/7 support, Doctrine ORM 2 vs. 3 are all unverified from the metadata and must be checked in composer.json and CI.
  • Opportunity score of 0.38 is consistent with the category: pagination is commoditized (Laravel ships it; Symfony has Pagerfanta and KnpPaginatorBundle with orders of magnitude more adoption). There is little differentiation to justify accepting the risk.

Key questions for the requester:

  1. Is the actual target stack Laravel/Eloquent, Symfony/Doctrine, or a hybrid? This single answer changes the recommendation from "reject" to "consider alternatives."
  2. If Doctrine is genuinely in play, why this bundle over Pagerfanta or KnpPaginatorBundle?
  3. What is the organizational policy on GPL-3.0 dependencies in distributed artifacts?
  4. What pagination UX contract is required — offset-based links, cursor/infinite scroll, or both? Large-offset behavior drives the data-layer design.
  5. Who owns the fork if upstream goes dormant, and is there budget for that ownership?
  6. Are there tests, and what is measured coverage? Absent tests, adopting the library means adopting unverified logic.

Integration Approach

Stack fit.

  • Symfony + Doctrine ORM: native fit, but outclassed by mature incumbents. Only justified if the bundle offers a specific feature the alternatives lack.
  • Laravel + Eloquent: do not integrate. Reimplement the pagination logic natively against LengthAwarePaginator / CursorPaginator, or lift only the page-window algorithm after license review.
  • Laravel + laravel-doctrine/orm: technically possible, but you inherit two layers of integration risk (Doctrine bridge plus a Symfony bundle shim) for a solved problem.

Migration path (recommended: replace, don't adopt).

  1. Confirm stack and pagination UX requirements.
  2. Legal review of GPL-3.0 against the distribution model.
  3. If Symfony: evaluate Pagerfanta / KnpPaginatorBundle first; adopt this bundle only on a documented feature gap.
  4. If Laravel: implement pagination in-house using framework primitives. Use this repository's source as an algorithm reference only, and only if legal clears it — otherwise write the page-window logic from scratch (it is small enough that clean-room implementation is cheaper than license risk).

Compatibility. Verify before any spike: declared PHP constraint, Symfony version range, Doctrine ORM major version, presence of a composer.lock-tested CI matrix, and whether the Twig templates are mandatory or overridable. A package with 0 dependents is unlikely to have been exercised against current framework releases.

Sequencing. Discovery and license review (days) → 1–2 day technical spike proving the pagination contract in the target stack → build native implementation or select a mature alternative → integrate behind an interface (a Paginator port) so the library choice is swappable → test against edge cases → ship. Do not place this package on the critical path; keep it behind an abstraction if any of it survives.

Operational Impact

Maintenance. Treat upstream as unmaintained. Any adoption implies forking and owning the code, including PHP/Symfony upgrade work. Budget ongoing maintenance headcount, not a one-time integration cost. Dependency scanners will flag GPL-3.0 and any stale transitive packages, generating recurring review overhead.

Support. No vendor, no SLA, no meaningful community (1 star, 0 dependents). Internal engineers are the only support channel, and there is no upstream to escalate to. Documentation appears thin, so onboarding cost is "read the source."

Scaling. The pagination logic itself is computationally trivial and will not be a bottleneck. The risks are in the query pattern:

  • Offset pagination degrades on deep pages (OFFSET 100000); assess whether cursor pagination is required.
  • COUNT(*) for total pages can dominate query cost on large or filtered tables; consider approximate counts or cached totals.
  • Without composite indexes aligned to the sort order, page queries devolve into filesorts.
  • Doctrine hydration adds per-row overhead versus raw array results; measure at target row volumes.

Failure modes.

  • Page out of range or per_page unbounded → empty pages or memory exhaustion.
  • Count query timeout on large datasets, producing 500s on list views.
  • Unstable ordering (non-unique sort key) → duplicate or missing rows across pages under concurrent writes.
  • Lazy-loaded associations in the rendered page → N+1 queries.
  • Symfony DI misconfiguration or missing Twig namespace → container boot failure, which in Laravel manifests as an unresolvable binding.
  • GPL contamination discovered late, after code has been copied into a distributed artifact.

Ramp-up. The domain is simple enough that a mid-level engineer grasps it in hours; the friction is entirely contextual — Symfony bundle conventions for a Laravel team, Doctrine idioms for an Eloquent team, and reverse-engineering undocumented behavior. Estimate 2–4 engineer-days to reach a confident build-vs-adopt decision, versus 1–3 days to implement natively in Laravel.

TPM recommendation. Do not adopt as a dependency. The package solves a commoditized problem, targets the wrong framework for the stated context, carries copyleft licensing obligations, and has no adoption or maintenance signal to offset that risk. Confirm the target stack, then either select a mature Symfony paginator or implement natively in Laravel behind a swappable paginator interface.

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.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle