nitra/pagerfanta-bundle
Symfony bundle integrating Pagerfanta pagination, offering flexible pagers, adapters, and Twig helpers for paginated lists. Easily paginate Doctrine queries, arrays, and custom data sources with configurable templates and straightforward Symfony integration.
Architecture fit. nitra/pagerfanta-bundle is not a Laravel package — it is a Symfony 2 bundle that wires the Pagerfanta pagination library into the Symfony 2 DI container, Twig templating, and bundle registration system. It has no service provider, no facade, no Laravel config publishing, and no Composer autoload conventions aligned with Laravel's package discovery. Dropping it into a Laravel application would not work without bypassing the bundle entirely and consuming pagerfanta/pagerfanta directly. The bundle layer is the only thing this package adds, and that layer is Symfony-specific. Architecture fit for a Laravel stack is effectively zero.
Integration feasibility. Low. The realistic integration is: skip this package, install pagerfanta/pagerfanta (which ships an Illuminate/Doctrine adapter set), and write a small pagination presenter for Blade. That is a one-to-two-day task for a mid-level engineer and yields a maintained dependency. Installing this bundle onto a Laravel app would require kernel bootstrapping, Symfony bundle registration, and Twig — none of which exist in Laravel — making the effort high and the outcome brittle.
Technical risk. High. Indicators: 0 stars, 0 dependents, hosted on Bitbucket, and it targets Symfony 2, which reached end-of-life in November 2019. That implies PHP 5.x/7.0-era constraints, unpatched transitive dependencies, and no security response. A single-maintainer abandoned bundle in a supply-chain-sensitive environment is a compliance and audit finding, not just a technical inconvenience. Even if the pagination logic itself is trivial, the dependency graph it pulls in is the risk.
Key questions.
pagerfanta/pagerfanta core plus a Laravel adapter and drop the bundle?Stack fit. Poor for Laravel, acceptable only for a legacy Symfony 2 application. Pagination is a commodity capability; the right primitive for Laravel is Illuminate\Pagination (LengthAwarePaginator, CursorPaginator) with Blade or API resource rendering. Pagerfanta core is a viable alternative if the team specifically needs its adapter ecosystem or its view layer, but the bundle wrapper should not be carried.
Migration path.
pagerfanta/pagerfanta core against native Laravel pagination on three criteria — adapter coverage (Eloquent/query builder), view rendering effort, and cursor support for large offsets. Expect native to win on effort and support.page, maxPerPage) to Laravel's page/per_page and reimplement views in Blade. Effort is hours, not days, per endpoint.Compatibility. Assume PHP 5.6–7.x and Symfony 2.3–2.8 constraints. Verify against the target runtime before any consideration — most modern Laravel stacks are PHP 8.2+ and the constraint resolution will fail outright. Also check whether the bundle's Twig dependency conflicts with any remaining Twig usage in mixed stacks.
Sequencing. (1) Confirm the actual requirement and target framework. (2) Spike native Laravel pagination on one representative endpoint. (3) If Pagerfanta semantics are required, integrate core library only. (4) Only if a Symfony 2 app is in scope, vendor-pin the bundle and document it as technical debt with a named remediation owner. Do not sequence this package ahead of the framework decision.
Maintenance. Effectively unmaintained. Zero stars and zero dependents mean no ecosystem pressure, no issue triage, no CVE response, and no upstream fixes for PHP or framework version drift. Any bug fix becomes an internal fork. Budget for that ownership explicitly, or avoid the dependency.
Support. No community, no vendor, no documentation beyond the repo. Onboarding cost is real: an engineer must read bundle source to understand configuration and Twig helper behavior. Internal documentation will be the only reliable reference.
Scaling. Pagination itself is cheap, but Pagerfanta's default adapters issue a COUNT(*) for every page request, which degrades on large tables. At scale this needs cursor-based pagination or an approximate-count strategy — another reason to prefer Laravel's CursorPaginator for high-volume endpoints. The bundle adds nothing to solve this.
Failure modes.
Ramp-up. Low for the library concept (pagination is well understood), high for the operational burden of owning an abandoned dependency. Estimate: half a day for an engineer to evaluate and reject this package in favor of native Laravel pagination; one to two days to implement native pagination across a typical CRUD surface; ongoing cost if retained is unbounded (security patching, fork maintenance, upgrade blocking).
Recommendation. Do not adopt. Treat it as a legacy artifact relevant only to an existing Symfony 2 application, and even there plan a replacement. For Laravel, use the framework's native paginator; if Pagerfanta semantics are genuinely required, use pagerfanta/pagerfanta core with an Illuminate adapter and own the thin view layer internally.
How can I help you explore Laravel packages today?