silarhi / cursor-pagination
A doctrine ORM cursor based pagination library for faster batch operations.
2.1.0
2026-01-29 11:43 UTC
Requires
- php: >=8.2
- doctrine/orm: ^3.0
Requires (Dev)
- doctrine/data-fixtures: ^2.0
- friendsofphp/php-cs-fixer: ^3.93
- phpstan/phpstan: ^2
- phpunit/phpunit: ^10.5.20|^11.1.3|^12
- rector/rector: ^2
- symfony/cache: ^7.0|^8.0
- vimeo/psalm: ^5.26|^6
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- 2.1.0
- 2.0.0
- 1.2.0
- 1.1.0
- 1.0.2
- 1.0.1
- 1.0.0
- dev-ci/test-true-lowest-dependencies
- dev-fix/iteration-state-and-offset-set
- dev-test/improve-coverage
- dev-ci/coverage-report
- dev-chore/runtime-minimal-versions
- dev-ci/normalize-workflows
- dev-ci/php-8.6-platform-reqs
- dev-guillaume-sainthillier-patch-2
- dev-guillaume-sainthillier-patch-1
- dev-copilot/fix-000ead81-19c9-4efc-9460-7727982c8c58
This package is auto-updated.
Last update: 2026-09-30 17:36:34 UTC
README
Installation
composer require silarhi/cursor-pagination
Usage
use Silarhi\CursorPagination\Pagination\CursorPagination; $queryBuilder = $entityManager ->createQueryBuilder('u') ->from(User::class, 'u') ->where('u.enabled = true'); $configurations = new OrderConfigurations( new OrderConfiguration('u.createdAt', static fn (User $user): string => $user->getCreatedAt()), new OrderConfiguration('u.id', static fn (User $user): int => $user->getId()), ); /** @var CursorPagination<User> $pagination */ $pagination = new CursorPagination($queryBuilder, $configurations, 100); // Method 1: get results as chunk (recommended) foreach($pagination->getChunkResults() as $results) { foreach($results as $user) { $user->setEnabled(false); } $entityManager->flush(); $entityManager->clear(); } // Method 2: get single result as iterator foreach($pagination->getResults() as $user) { // do something with user } ``