Download the PHP package lampager/lampager-laravel without Composer
On this page you can find all versions of the php package lampager/lampager-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download lampager/lampager-laravel
More information about lampager/lampager-laravel
Files in lampager/lampager-laravel
Informations about the package lampager-laravel
# Lampager for Laravel
Rapid pagination without using OFFSET
> [!CAUTION]
> **Now Laravel officialy supports Cursor Pagination as of v8.41. Please don't use if you install such versions unless you choose `SQLServer` as RDBMS.**
> - **[Highly Performant Cursor Pagination in Laravel 8.41 | Laravel News](https://laravel-news.com/cursor-pagination)**
> - **[SQL Feature Comparison](https://www.sql-workbench.eu/dbms_comparison.html)** (See "Tuple Comparison" section)
## Requirements
> [!NOTE]
> Older versions have outdated dependency requirements. If you cannot prepare the latest environment, please refer to past releases.
- PHP: `^8.2`
- Laravel: `^11.0 || ^12.0`
- [lampager/lampager](https://github.com/lampager/lampager): `^0.5`
## Installing
## Basic Usage
Register service provider.
`config/app.php`:
Then you can chain `->lampager()` method from Query Builder, Eloquent Builder and Relation.
It will run the optimized query.
And you'll get
## Resource Collection
Lampager supports Laravel's API Resources.
- [Eloquent: API Resources - Laravel - The PHP Framework For Web Artisans](https://laravel.com/docs/6.x/eloquent-resources)
Use helper traits on Resource and ResourceCollection.
## Classes
Note: See also [lampager/lampager](https://github.com/lampager/lampager).
| Name | Type | Parent Class | Description |
|:---|:---|:---|:---|
| Lampager\\Laravel\\`Paginator` | Class | Lampager\\`Paginator` | Fluent factory implementation for Laravel |
| Lampager\\Laravel\\`Processor` | Class | Lampager\\`AbstractProcessor` | Processor implementation for Laravel |
| Lampager\\Laravel\\`PaginationResult` | Class | Lampager\\`PaginationResult` | PaginationResult implementation for Laravel |
| Lampager\\Laravel\\`MacroServiceProvider` | Class | Illuminate\\Support\\`ServiceProvider` | Enable macros chainable from QueryBuilder, ElqouentBuilder and Relation |
| Lampager\\Laravel\\`LampagerResourceTrait` | Trait | | Support for Laravel JsonResource |
| Lampager\\Laravel\\`LampagerResourceCollectionTrait` | Trait | | Support for Laravel ResourceCollection |
`Paginator`, `Processor` and `PaginationResult` are macroable.
## API
Note: See also [lampager/lampager](https://github.com/lampager/lampager).
### Paginator::__construct()
Paginator::create()
Create a new paginator instance.
If you use Laravel macros, however, you don't need to directly instantiate.
- `QueryBuilder` means `\Illuminate\Database\Query\Builder`
- `EloquentBuilder` means `\Illuminate\Database\Eloquent\Builder`
- `Relation` means `\Illuminate\Database\Eloquent\Relation`
### Paginator::transform()
Transform Lampager Query into Illuminate builder.
### Paginator::build()
Perform configure + transform.
### Paginator::paginate()
Perform configure + transform + process.
#### Arguments
- **`(mixed)`** __*$cursor*__
An associative array that contains `$column => $value` or an object that implements `\Lampager\Contracts\Cursor`. It must be **all-or-nothing**.
- For initial page, omit this parameter or pass empty array.
- For subsequent pages, pass all parameters. Partial parameters are not allowd.
#### Return Value
e.g.
(Default format when using `\Illuminate\Database\Eloquent\Builder`)
### Paginator::useFormatter()
Paginator::restoreFormatter()
Paginator::process()
Invoke Processor methods.
### PaginationResult::toArray()
PaginationResult::jsonSerialize()
Convert the object into array.
**IMPORTANT: `camelCase` properties are converted into `snake_case` form.**
### PaginationResult::__call()
Call macro or Collection methods.
e.g.
All versions of lampager-laravel with dependencies
ext-json Version *
lampager/lampager Version ^0.5
illuminate/contracts Version ^11.0 || ^12.0 || ^13.0
illuminate/support Version ^11.0 || ^12.0 || ^13.0
illuminate/database Version ^11.0 || ^12.0 || ^13.0