sebastiansulinski/php-paginator
A lightweight, framework-agnostic PHP paginator for splitting result sets into pages and rendering pagination links. Configure page size, current page, and base URL, preserve query strings, and integrate easily into Laravel or plain PHP projects.
composer require <vendor>/<package>:"^3.3". This is the only branch that resolves against illuminate/http:^13.0 and illuminate/support:^13.0.^3.2 — that constraint line remains valid and is the documented fallback in the release notes.^8.3 is unchanged, and the package is tested against PHP 8.5, so a PHP bump and the Illuminate bump can be done in the same pass without extra risk from this package.php artisan vendor:publish). Laravel package auto-discovery means there is usually no manual config/app.php wiring, but verify the provider is listed if discovery is disabled in your app.Http::fake() before touching application code.illuminate/*:^12.0 against <package>:^3.2, one resolving ^13.0 against <package>:^3.3. Composer will not let you test a single lockfile against both."<vendor>/<package>": "^3.2" is the safest declaration — it allows 3.3 on Illuminate 13 and still resolves 3.2 on Illuminate 12, letting the consumer's framework version pick the branch.illuminate/http, bind its client into the container once (a singleton in a service provider or a thin app-level wrapper) and inject that. It keeps the upgrade surface to one file when the next Illuminate major lands.Http::fake() / Http::assertSent() around the package rather than mocking the package's own classes; that's the seam that survives minor and patch releases.^3.3. Doing the package first leaves Composer unable to resolve the transitive illuminate/* constraints.Changed — no Added, Deprecated, or Removed. Treat 3.2 → 3.3 as a drop-in on Illuminate 13, but still run your test suite because Illuminate 13 itself may change behavior underneath.^13.0 is a hard floor in the package's own require. If your composer.json pins illuminate/support to ^12.0, composer update will silently keep you on 3.2 — or fail loudly if you asked for ^3.3. Check composer why-not <vendor>/<package> 3.3.0 when the upgrade "doesn't take."illuminate/http or illuminate/support, not the package that actually forced it. composer depends illuminate/support finds the culprit quickly.^8.3. Running 8.5 is supported by the package's CI, but your other dependencies may not be — validate the whole graph, not just this package.illuminate/http is actually present in the container (Lumen ships a slimmer default set).illuminate/http, Http::preventStrayRequests() plus a global Http::globalRequestMiddleware() (or the package's own logging hook, if configured) will show you exactly what it sends without patching vendor code."<vendor>/<package>": "~3.2.0" rather than ^3.2 in apps that will later upgrade — it prevents an accidental 3.3 pull-in during an unrelated composer update once someone else bumps the framework.^3.2"; confirm the 3.2 line is still receiving patches before committing to it long-term, and track the package's changelog for a 3.2.1+ release.How can I help you explore Laravel packages today?