- New #150: Extract
withLimit()
fromReadableDataInterface
intoLimitableDataInterface
(@vjik) - Enh #150:
PaginatorInterface
now extendsReadableDataInterface
(@vjik) - Chg #151: Rename
isRequired()
method inPaginatorInterface
toisPaginationRequired()
(@vjik) - New #153, #154: Add
KeysetPaginator::withFilterCallback()
method that allows set closure for preparing filter passed to the data reader (@vjik) - New #153: Add
Compare::withValue()
method (@vjik) - Chg #154: Raise the minimum required PHP version to 8.1 (@vjik)
- Bug #155: Fix
Sort
configuration preparation (@vjik) - Bug #155: Fix same named order fields in
Sort
were not overriding previous ones (@vjik) - New #158: Add methods
PaginatorInterface::isSortable()
andPaginatorInterface::withSort()
(@vjik) - New #164: Add methods
PaginatorInterface::isFilterable()
andPaginatorInterface::withFilter()
(@vjik) - Chg #159: Replace
withNextPageToken()
andwithPreviousPageToken()
ofPaginatorInterface
withwithToken()
,getNextPageToken()
withgetNextToken()
,getPreviousPageToken()
withgetPreviousToken()
, and addgetToken()
. These methods use newPageToken
class (@vjik) - New #160: Add
Sort::hasFieldInConfig()
method that checks for the presence of a field in the sort config (@vjik) - New #161: Add
PageNotFoundException
(@vjik) - Chg #161:
PaginatorInterface::getCurrentPageSize()
returns 0 instead throws exception if page specified is not found (@vjik) - Enh #161: Add more specified psalm annotations to
CountableDataInterface::count()
,PaginatorInterface::getCurrentPageSize()
andOffsetPaginator::getTotalItems()
(@vjik) - Chg #165: Simplify
FilterInterface
andFilterHandlerInterface
(@vjik) - Chg #166: Remove
EqualsEmpty
filter (@vjik) - New #176: Add
OrderHelper
(@vjik) - New #173, #184: Add
$caseSensitive
parameter toLike
filter to control whether the search must be case-sensitive or not (@arogachev) - Enh #187, #196: Limit set in data reader is now taken into account by offset paginator. Keyset paginator throws an exception in this case (@samdark, @vjik)
- Chg #187: Add
FilterableDataInterface::getFilter()
,LimitableDataInterface::getLimit()
,OffsetableDataInterface::getOffset()
(@samdark) - Chg #187:
LimitableDataInterface::withLimit()
now acceptsnull
to indicate "no limit".0
is now a valid limit value meaningreturn nothing
(@samdark) - Chg #163: Rename
FilterableDataInterface::withFilterHandlers()
toFilterableDataInterface::withAddedFilterHandlers()
(@samdark) - Enh #190: Use
str_contains
for case-sensitive match inLikeHandler
(@samdark) - Enh #194: Improve psalm annotations in
LimitableDataInterface
(@vjik) - Bug #195: Fix invalid count in
IterableDataReader
when limit or/and offset used (@vjik) - Enh #201: Disable sorting when limit is set explicitly in a paginator (@samdark)
- Enh #202: Check that correct sort is passed to
withSort()
of keyset paginator (@samdark) - Enh #207: More specific Psalm type for
OffsetPaginator::withCurrentPage()
(@samdark) - Enh #214: Improved interface hierarchy (@samdark)
- Enh #207: More specific Psalm type for
OffsetPaginator::withCurrentPage()
parameter (@samdark) - Enh #210: More specific Psalm type for
PaginatorInterface::getPageSize()
result (@vjik) - Chg #219: Narrow type of page size in
PaginatorInterface::withPageSize()
method to positive int by psalm annotation and throwInvalidArgumentException
if non-positive value is passed (@vjik) - Enh #219: Add page to message of
PageNotFoundException
exception (@vjik) - Chg #219: Throw
InvalidArgumentException
instead ofPaginatorException
inOffsetPaginator::withCurrentPage()
method when non-positive value is passed (@vjik) - Chg #219: Don't check correctness of current page in
PaginatorInterface::isOnLastPage()
method (@vjik) - Chg #219: Rename
PaginatorException
toInvalidPageException
(@vjik)
- Chg #137: In
FilterableDataInterface::withFilterHandlers()
rename parameter$iterableFilterHandlers
to$filterHandlers
(@vjik)
- Initial release.