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 Laravel Package

mindy/pagination

A pagination package for Laravel and PHP applications that helps split large result sets into manageable pages. It provides pagination helpers and rendering utilities, though documentation and community adoption are limited.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. mindy/pagination is a component of the MindyPHP micro-framework, not a Laravel package. It ships no ServiceProvider, no facade, no config, no Blade directive, and — most importantly — no implementation of Illuminate\Contracts\Pagination\Paginator or LengthAwarePaginator. On a Laravel stack it does not replace the native paginator; it sits beside it as a second, incompatible abstraction. The mitigating factor is that pagination is a thin, low-coupling concern — offset/window arithmetic plus a URL builder — so the architectural mismatch is cheap to reverse, which is exactly why it should not be introduced in the first place.

Integration feasibility. Composer-installable and MIT-licensed, so there is no legal friction. The real feasibility question is whether the artifact resolves and behaves outside the Mindy container and view layer. Given the repository profile — 1 star, 0 dependents, no visible release cadence — this is almost certainly a read-only subtree split of the MindyPHP/mindy monorepo published for internal use. Practical consequences for a TPM: the Packagist artifact may lag the monorepo, may be force-pushed, may not be the canonical source of truth, and may not carry a meaningful version tag. A ~300 LOC commodity utility is not worth a supply-chain audit, but if adoption is forced, the audit is mandatory.

Technical risk. High on maintenance and compatibility, low on business blast radius.

Risk Assessment TPM read
Maintenance Effectively unmaintained; 1 star, 0 dependents, no visible CI or release cadence You become the maintainer on day one
Compatibility Mindy dates to the PHP 5.4–7.x era; PHP 8.x behavior unverified, test suite likely absent or uninspectable Upgrade cycles become blocking events
Coupling Pagination components typically assume a request object, router, and view engine; transplanting into Laravel's Request/UrlGenerator/Blade pipeline needs an adapter Hidden integration cost exceeds the package's value
Supply chain Near-zero adoption is a poor dependency-hygiene signal even when code is benign Audit cost > code value
Security exposure Pagination touches no auth, persistence, money, or PII; failure mode is a broken page control, not a breach Low severity, but unclamped per_page is a cheap resource-exhaustion vector

Key questions.

  1. Is this repository a subtree split of MindyPHP/mindy? If so, what is the sync mechanism and how stale is the published artifact?
  2. Does a real release tag exist on Packagist, or is install effectively pinned to dev-master?
  3. What does composer.json declare for php and for mindy/* siblings? Does it pull the whole framework transitively?
  4. Is there a test suite, and does the code path depend on Request/Router/View singletons?
  5. Offset-only or keyset/cursor support? Offset-only is a scaling liability, not merely a feature gap.
  6. Who maintains it, and is there a stated deprecation or successor?

Product framing. Pagination is table stakes, not a differentiator. The strategic decision this evaluation actually informs is whether the product standardizes on Laravel's ecosystem (LengthAwarePaginator, CursorPaginator, Blade/Tailwind/Bootstrap views) or tolerates mixed-paradigm components. This package pushes toward the latter, which is a maintenance tax with no customer-visible upside. No roadmap slot should be allocated to pagination tooling beyond the framework default.

Integration Approach

Stack fit. For Laravel 9–11: do not integrate. paginate(), simplePaginate(), cursorPaginate(), ResourceCollection, and the links() Blade directive already cover this surface, are first-party maintained, and inherit Laravel's PHP-version and security guarantees. Adding mindy/pagination creates a second pagination vocabulary for zero functional gain. If you are already on MindyPHP, the calculus changes: it is the native component and the risk is inherited from the framework choice rather than this package.

Migration path (recommended for Laravel).

  1. Spike, don't adopt. 1–2 engineer-days on a scratch branch: install, read the source, and document the contract (page-size clamping, max-page behavior, URL parameter names, rendered markup). Do not merge.
  2. Port the intent, not the code. If the package encodes a convention Laravel lacks — a windowed page-number renderer, a specific link format — reimplement it as a Blade component in ~50–100 lines. MIT permits direct reuse with attribution where logic is non-trivial.
  3. Abstract early. Depend on Illuminate\Contracts\Pagination\LengthAwarePaginator in application code so any future swap is a container binding, not a refactor.
  4. Vendor-fork only as a last resort. Fork to your own VCS, pin to a commit SHA, and record a named owner and review date.

Compatibility. The package's PHP 8.x posture is unverified, which matters because a Laravel 9–11 codebase is PHP 8.1+. Any fork must be gated on a PHP-version matrix in CI before it can enter the shared dependency set.

Sequencing. If a Mindy dependency genuinely forces adoption: pin PHP in CI → add smoke tests for page 1, last page, out-of-range page, zero results, and per_page clamping → add a PHP 8 deprecation gate → only then allow it into the shared dependency set. Never allow a floating constraint on a package with no maintainer. Decide offset vs. cursor once, per surface: offset for bounded admin tables, cursor for unbounded feeds and public APIs.

Operational Impact

Maintenance. Adopting this package means owning it. Absolute cost is small — roughly 2–5 engineer-days per year for PHP-version bumps and patches on a ~300 LOC codebase — but the scheduling cost is disproportionate: low-value dependencies are the ones skipped during upgrade cycles and then become the blocker. Assign an internal owner with an annual review date, or don't adopt.

Support. None. No issue triage, no security advisories, no CVE feed, no upgrade guide. Incident runbooks must attribute failures internally. Contrast Laravel's paginator, where breakage arrives through documented upgrade guides and community triage.

Scaling. Pagination itself is stateless; the query pattern scales poorly. An offset paginator issues SELECT ... LIMIT ? OFFSET ? plus COUNT(*), both of which degrade on large tables — deep offsets force index scans and count queries dominate. For read paths expecting millions of rows, plan for keyset pagination at the data-model layer, not the component layer. This package very likely does not offer it.

Failure modes.

  • Dependency drift — untagged dev-master resolution silently changes behavior between builds; reproducible builds become luck.
  • Upgrade wall — a PHP 8.x jump forces a fork or rewrite under time pressure.
  • Coupling breakage — an upstream Mindy request/container refactor yields blank or duplicated page controls, easy to miss in tests and visible to users.
  • Input handling — unclamped per_page is a cheap resource-exhaustion vector; bound it before exposing it.
  • Abandonment — repository deleted or org renamed; any lockfile-less restore fails.

Ramp-up. Trivial. A mid-level engineer reads the full source in under an hour. That is precisely why owning it is cheap — and why the near-zero adoption score, not onboarding cost, is the dominant factor.

Recommendation. The 0.005 score reflects no adoption, no maintenance signal, and no fit for the stated Laravel stack. Reject for Laravel. Use the first-party paginator; if the Mindy behavior has specific value, port the 50–100 lines you need under MIT attribution and own them. Reserve adoption for teams already committed to MindyPHP, and even then pin to a commit SHA and assign an internal owner. The stakeholder message is simple: we already own production-grade pagination at zero marginal cost, and adding a single-star dependency introduces maintenance and supply-chain exposure for a capability that is not a differentiator. Redirect that effort to features customers actually notice.

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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package