- fix(
QueryBuilderAdapter
): ORM 2 compatibility - fix: remove remnants
- refactor:
PageableInterface::getPages()
now returnsIterator
instead ofTraversable
(non-backward compatible for implementors)
- chore: static analysis
- feat: add lock mode to
QueryBuilderAdapter
- feat: API Platform 4 compatibility
- feat: Doctrine ORM 3.3 compatibility
- chore: add missing types
- deps: prevent
doctrine/orm
3.3.0 for now - build: remove unneeded service alias
- test: add phpat architecture tests
- fix:
RekapagerLinkProcessor
was added to the wrong package
- fix(
SymfonySerializerKeysetPageIdentifierEncoder
): handle more errors - feat: link headers
- ci: add php-cs-fixer check
- ci: add php 8.4 tests
- fix: LIMIT & OFFSET are not supported with replacing select count(*)
- feat: improve demo
- fix: malformed identifier now gives 400 bad request error
- feat: DBAL adapter
- fix: ORM
QueryBuilderAdapter
logic - perf: improve DBAL
QueryBuilderAdapter
count performance - chore: cleanup
- chore: satisfy static analysis
- feat:
indexBy
now supportsDateTimeInterface
andUnitEnum
properties - style: clean up demo
- fix(
KeysetExpressionCalculator
): fix bug if more than two fields are used - feat: support
BackedEnum
as order field - fix: fix DBAL count query
- test: update fixtures to include enum in sort field
- chore: various demo polishing
- chore: rector clean up
- deps: DBAL 4.0 compatibility
- fix: fix
QueryBuilderAdapter
error when WHERE statement is empty - chore: update demo
- deps: Doctrine ORM adapter should depend on offset pagination
- refactor: simplify
KeysetExpressionCalculator
- chore: cleanup
- feat: native query adapter now supports row values method
- feat: query builder adapter now supports row values method
- fix(
QueryBuilderAdapter
): auto seek method
- refactor: move keyset expression logic to a dedicated class
- feat:
NativeQueryAdapter
- feat(
NativeQueryAdapter
): check SQL input
- refactor(
BatchCommand
): remove input & output arguments fromgetPageable()
- feat(
QueryBuilderAdapter
): now supports offset pagination
- fix: fix metrics when resuming batch
- chore: add
Override
attribute where applicable - chore: rector config updates
- feat: add
getInput()
andgetOutput()
toBatchCommand
- build: update target for release process
- build: add pcntl extension to Dockerfile
- build: fix docker terminal issu
- feat: batch time limit
- fix: batch size CLI option
- feat(batch): show remaining time if the count is known
- feat: add
BatchProcess
and related classes - feat(
BatchProcess
): addSimpleBatchProcess
, simplify wiring, add process-file feature - fix(
BatchProcess
): show interrupt message only once - refactor(
BatchProcess
):processItem
now accept an event - refactor(
BatchProcess
): remove metric collection & logging from main class
- refactor: add
PageIdentifierEncoderResolverInterface
for simplification
- fix: fix deprecations
- feat: add
Closure
type parameter for count in all Pageable implementations
- fix(
PagerFantaAdapterAdapter
): rename$pagerfanta
to$adapter
- fix: remove all
array_is_list()
checks
- fix(
PagerItem
):withPageNumber
should return static - build: update php-cs-fixer
- feat(
QueryBuilderAdapter
): addindexBy
parameter - feat(
PageableInterface
): add$start
parameter togetPages()
method to ease batch resuming. - refactor: move common indexBy logic to separate package
- feat(
SelectableAdapter
): addindexBy
parameter - feat(
PagerfantaAdapterAdapter
): addindexBy
parameter - test: use SQL file for fixtures population. should fix CI race condition.
- fix: add interface covariance where applicable
- test: add
UnsupportedCollectionTest
- fix: improve error message if a property does not exist or the value is null
- feat: friendly error message if the underlying collection's item is not an array or object
- feat(
SelectableAdapter
): refuse to continue if the supplied criteria has a first result or max results parameter set - feat(
QueryBuilderAdapter
): refuse to continue if the supplied criteria has a first result or max results parameter set - legal: add LICENSE to each of the subpackages
- refactor: change
PageableInterface::getPageIdentifierClass()
from static to instance method to simplify decoration
- chore: remove unneeded intermediate interfaces
- chore: remove TIdentifier template as it feels superfluous in userland
- fix: renumbering of pages if anchored to the first page.
- build: limit
zenstruck/foundry
to 1.37.* for now - fix(
PagerFactory
): pager should not be lazy, so that if the page does not exist, it will throw an exception immediately, not inside template. - feat(
PagerFactory
): wrapOutOfBoundsException
and add the pager and options to the exception class. - fix(
Pager
): fix offset pagination bug where the last page points to the first page.
- fix(
QueryBuilderAdapter
): use generated field names for our boundary fields in the select statement, avoids conflict with other fields in the query.
- build: Symfony 7.1 compatibility
- fix: bug of extra first & last page showing up in small data set.
- fix: assertion in QueryCounter
- fix(keyset): going from 2nd last page to last page now works properly
- refactor: remove configuration from API Platform bundle, will try to reuse standard API Platform extra properties.
- feat: throw exception if a boundary value is null
- feat: add
PagerFactoryInterface
for API Platform
- build: spinoff encoder service definition
- build: twig & twigbundle is now optional
- feat: API Platform support
- feat(
OpenApi
): change all 'page' parameters to accept string - feat(ApiPlatform): add
PageNormalizer
&PagerFactory
- feat(
QueryBuilderAdapter
): add type detection
- fix: next page skipping bug & lazy loading Pager
- perf: flip SQL keyset expression for potential performance improvement
- build: update babel config according to symfony docs
- fix(
bootstrap5.html.twig
): fix label_unknown bug - fix(
ProximityPager
): fix bug when going to next page from second to last page
- feat: infinite scrolling
- feat: AssetMapper compatibility
- fix: js module
- fix: change infinite scrolling breakpoint to 768px
- feat: infinite scrolling demo
- feat:
rekapager_infinite_scrolling_content
Twig function - fix(
Dockerfile
): fix importmap - demo: show page identifier
- fix: various pager numbering fixes
- fix(
QueryBuilderAdapter
): now refuses to continue if the same field appears multiple times in the order by clause.
- test: add tests for zero proximity pager, empty pager, and test current count for all pagers
- fix(
OffsetPage
): fixOutOfBoundsException
on an empty first page. - fix(
Pager
): fetch only 2 * proximity ahead and behind. - feat(
PageableInterface
): addgetPages()
for easy batching
- refactor:
PagerItemInterface
methods now returns itself, instead ofPageInterface
- fix(
QueryBuilderAdapter
): throws an exception if the query does not have an order by clause. - feat: add
PagerfantaPageable
- refactor(
PagerFactoryInterface
): rename method tocreatePager()
- build: initial commit