illuminate/pagination
The Illuminate Pagination package.
v13.26.1
35M downloads/mo
#890 most downloaded on Packagist
illuminate/pagination
What this package is like to depend on
Last release 21 days ago
02 Aug 2026
Release timing varies
gaps range from 1 weeks to 3 months
Rarely documented
notes for 10 of 1014 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
1023 releases · first in 2012
9 releases in the last 12 months
see the full history below
Release timeline
168 releases · Sep 2012 to Aug 2026Releases
latest 60 of 1023-
v13.26.102 Aug 2026Release notes
Open source →Guard LengthAwarePaginator against division by zero when perPage is 0,
and make CursorPaginator reindex items consistently for next/previous pages. -
v13.26.0no dateRelease notes
Open source →Guard LengthAwarePaginator against division by zero when perPage is 0,
and make CursorPaginator reindex items consistently for next/previous pages. -
v13.25.0no dateRelease notes
Open source →Guard LengthAwarePaginator against division by zero when perPage is 0,
and make CursorPaginator reindex items consistently for next/previous pages. -
v13.24.0no dateRelease notes
Open source →Guard LengthAwarePaginator against division by zero when perPage is 0,
and make CursorPaginator reindex items consistently for next/previous pages. -
v13.23.025 Jun 2026Release notes
Open source →- [13.x] Add conditional return types to several methods
Make PHPStan/Psalm narrow the return type at call sites for methods
whose return depends on whether a nullable argument is passed:- Paginator/CursorPaginator fragment() (concrete + contracts)
- Route::domain()
- Password/File validation rule defaults() (matching Email)
- __() helper
- ComponentAttributeBag::data()
Adds assertType coverage for the paginator and route cases.
- Add more conditional return types and simplify defaults() docblocks
More candidates (found via func_num_args / ternary-return / === null guards):
- Enumerable + LazyCollection random() (mirror Collection::random)
- Arr::random()
- Lottery::choose()
- Route::getMetadata()
Simplify Password/File/Email defaults() to a plain
@return ($callback is null ? static : void) instead of the verbose
@phpstan-return; plain @return conditional types are understood by
PHPStan, Psalm and PhpStorm.Adds assertType coverage and updates LazyCollection random() expectations.
- Widen Route::getMetadata() return to array<array-key, mixed>
Metadata setters accept any array and preserve numeric keys, so the
getter can return non-string keys. Use array<array-key, mixed> instead
of array<string, mixed>. -
v13.22.0no dateRelease notes
Open source →- [13.x] Add conditional return types to several methods
Make PHPStan/Psalm narrow the return type at call sites for methods
whose return depends on whether a nullable argument is passed:- Paginator/CursorPaginator fragment() (concrete + contracts)
- Route::domain()
- Password/File validation rule defaults() (matching Email)
- __() helper
- ComponentAttributeBag::data()
Adds assertType coverage for the paginator and route cases.
- Add more conditional return types and simplify defaults() docblocks
More candidates (found via func_num_args / ternary-return / === null guards):
- Enumerable + LazyCollection random() (mirror Collection::random)
- Arr::random()
- Lottery::choose()
- Route::getMetadata()
Simplify Password/File/Email defaults() to a plain
@return ($callback is null ? static : void) instead of the verbose
@phpstan-return; plain @return conditional types are understood by
PHPStan, Psalm and PhpStorm.Adds assertType coverage and updates LazyCollection random() expectations.
- Widen Route::getMetadata() return to array<array-key, mixed>
Metadata setters accept any array and preserve numeric keys, so the
getter can return non-string keys. Use array<array-key, mixed> instead
of array<string, mixed>. -
v13.21.1no dateRelease notes
Open source →- [13.x] Add conditional return types to several methods
Make PHPStan/Psalm narrow the return type at call sites for methods
whose return depends on whether a nullable argument is passed:- Paginator/CursorPaginator fragment() (concrete + contracts)
- Route::domain()
- Password/File validation rule defaults() (matching Email)
- __() helper
- ComponentAttributeBag::data()
Adds assertType coverage for the paginator and route cases.
- Add more conditional return types and simplify defaults() docblocks
More candidates (found via func_num_args / ternary-return / === null guards):
- Enumerable + LazyCollection random() (mirror Collection::random)
- Arr::random()
- Lottery::choose()
- Route::getMetadata()
Simplify Password/File/Email defaults() to a plain
@return ($callback is null ? static : void) instead of the verbose
@phpstan-return; plain @return conditional types are understood by
PHPStan, Psalm and PhpStorm.Adds assertType coverage and updates LazyCollection random() expectations.
- Widen Route::getMetadata() return to array<array-key, mixed>
Metadata setters accept any array and preserve numeric keys, so the
getter can return non-string keys. Use array<array-key, mixed> instead
of array<string, mixed>. -
v13.20.0no dateRelease notes
Open source →- [13.x] Add conditional return types to several methods
Make PHPStan/Psalm narrow the return type at call sites for methods
whose return depends on whether a nullable argument is passed:- Paginator/CursorPaginator fragment() (concrete + contracts)
- Route::domain()
- Password/File validation rule defaults() (matching Email)
- __() helper
- ComponentAttributeBag::data()
Adds assertType coverage for the paginator and route cases.
- Add more conditional return types and simplify defaults() docblocks
More candidates (found via func_num_args / ternary-return / === null guards):
- Enumerable + LazyCollection random() (mirror Collection::random)
- Arr::random()
- Lottery::choose()
- Route::getMetadata()
Simplify Password/File/Email defaults() to a plain
@return ($callback is null ? static : void) instead of the verbose
@phpstan-return; plain @return conditional types are understood by
PHPStan, Psalm and PhpStorm.Adds assertType coverage and updates LazyCollection random() expectations.
- Widen Route::getMetadata() return to array<array-key, mixed>
Metadata setters accept any array and preserve numeric keys, so the
getter can return non-string keys. Use array<array-key, mixed> instead
of array<string, mixed>. -
v13.19.0no dateRelease notes
Open source →- [13.x] Add conditional return types to several methods
Make PHPStan/Psalm narrow the return type at call sites for methods
whose return depends on whether a nullable argument is passed:- Paginator/CursorPaginator fragment() (concrete + contracts)
- Route::domain()
- Password/File validation rule defaults() (matching Email)
- __() helper
- ComponentAttributeBag::data()
Adds assertType coverage for the paginator and route cases.
- Add more conditional return types and simplify defaults() docblocks
More candidates (found via func_num_args / ternary-return / === null guards):
- Enumerable + LazyCollection random() (mirror Collection::random)
- Arr::random()
- Lottery::choose()
- Route::getMetadata()
Simplify Password/File/Email defaults() to a plain
@return ($callback is null ? static : void) instead of the verbose
@phpstan-return; plain @return conditional types are understood by
PHPStan, Psalm and PhpStorm.Adds assertType coverage and updates LazyCollection random() expectations.
- Widen Route::getMetadata() return to array<array-key, mixed>
Metadata setters accept any array and preserve numeric keys, so the
getter can return non-string keys. Use array<array-key, mixed> instead
of array<string, mixed>. -
v13.18.1no dateRelease notes
Open source →- [13.x] Add conditional return types to several methods
Make PHPStan/Psalm narrow the return type at call sites for methods
whose return depends on whether a nullable argument is passed:- Paginator/CursorPaginator fragment() (concrete + contracts)
- Route::domain()
- Password/File validation rule defaults() (matching Email)
- __() helper
- ComponentAttributeBag::data()
Adds assertType coverage for the paginator and route cases.
- Add more conditional return types and simplify defaults() docblocks
More candidates (found via func_num_args / ternary-return / === null guards):
- Enumerable + LazyCollection random() (mirror Collection::random)
- Arr::random()
- Lottery::choose()
- Route::getMetadata()
Simplify Password/File/Email defaults() to a plain
@return ($callback is null ? static : void) instead of the verbose
@phpstan-return; plain @return conditional types are understood by
PHPStan, Psalm and PhpStorm.Adds assertType coverage and updates LazyCollection random() expectations.
- Widen Route::getMetadata() return to array<array-key, mixed>
Metadata setters accept any array and preserve numeric keys, so the
getter can return non-string keys. Use array<array-key, mixed> instead
of array<string, mixed>. -
v13.18.0no dateNothing published for this version
-
v13.17.013 May 2026Nothing published for this version
-
v13.16.1no dateNothing published for this version
-
v13.16.0no dateNothing published for this version
-
v13.15.0no dateNothing published for this version
-
v13.14.0no dateNothing published for this version
-
v13.13.0no dateNothing published for this version
-
v13.12.0no dateNothing published for this version
-
v13.11.2no dateNothing published for this version
-
v13.11.1no dateNothing published for this version
-
v13.11.0no dateNothing published for this version
-
v13.10.0no dateNothing published for this version
-
v13.9.008 May 2026Nothing published for this version
-
v13.8.015 Apr 2026Nothing published for this version
-
v13.7.0no dateNothing published for this version
-
v13.6.0no dateNothing published for this version
-
v13.5.010 Mar 2026Nothing published for this version
-
v13.4.0no dateNothing published for this version
-
v13.3.0no dateNothing published for this version
-
v13.2.0no dateNothing published for this version
-
v13.1.1no dateNothing published for this version
-
v13.1.0no dateNothing published for this version
-
v13.0.0no dateNothing published for this version
-
v12.67.025 Feb 2026Nothing published for this version
-
v12.66.0no dateNothing published for this version
-
v12.65.0no dateNothing published for this version
-
v12.64.0no dateNothing published for this version
-
v12.63.0no dateNothing published for this version
-
v12.62.0no dateNothing published for this version
-
v12.61.1no dateNothing published for this version
-
v12.61.0no dateNothing published for this version
-
v12.60.2no dateNothing published for this version
-
v12.60.1no dateNothing published for this version
-
v12.60.0no dateNothing published for this version
-
v12.59.0no dateNothing published for this version
-
v12.58.0no dateNothing published for this version
-
v12.57.0no dateNothing published for this version
-
v12.56.0no dateNothing published for this version
-
v12.55.1no dateNothing published for this version
-
v12.55.0no dateNothing published for this version
-
v12.54.1no dateNothing published for this version
-
v12.54.0no dateNothing published for this version
-
v12.53.016 Nov 2025Nothing published for this version
-
v12.52.0no dateNothing published for this version
-
v12.51.0no dateNothing published for this version
-
v12.50.0no dateNothing published for this version
-
v12.49.0no dateNothing published for this version
-
v12.48.1no dateNothing published for this version
-
v12.48.0no dateNothing published for this version
-
v12.47.0no dateNothing published for this version