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.
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.
laravel-doctrine/orm plus a custom adapter, and the bundle's Symfony-coupled service wiring would still not resolve.Technical risk — dominated by project health, not by code complexity.
composer.json and CI.Key questions for the requester:
Stack fit.
LengthAwarePaginator / CursorPaginator, or lift only the page-window algorithm after license review.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).
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.
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 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.Failure modes.
per_page unbounded → empty pages or memory exhaustion.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.
How can I help you explore Laravel packages today?