Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
"ext-mbstring": "*",
"cycle/database": "^2.11",
"cycle/orm": "^2.9",
"yiisoft/data": "dev-master"
"yiisoft/data": "^2.0"
},
"require-dev": {
"maglnet/composer-require-checker": "^4.7",
Expand Down
12 changes: 4 additions & 8 deletions src/Reader/EntityReader.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
use Yiisoft\Data\Cycle\Reader\FilterHandler\LikeHandler\LikeHandlerFactory;
use Yiisoft\Data\Reader\DataReaderInterface;
use Yiisoft\Data\Reader\Filter\All;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;
use Yiisoft\Data\Reader\Sort;
use Yiisoft\Data\Cycle\Reader\Cache\CachedCollection;
Expand All @@ -40,7 +39,7 @@
private CachedCollection $itemsCache;
private CachedCollection $oneItemCache;
/**
* @psalm-var array<class-string, FilterHandlerInterface & QueryBuilderFilterHandler> $handlers
* @psalm-var array<class-string, QueryBuilderFilterHandler> $handlers
*/
private array $filterHandlers = [];

Expand Down Expand Up @@ -68,7 +67,7 @@
new FilterHandler\InHandler(),
new FilterHandler\LessThanHandler(),
new FilterHandler\LessThanOrEqualHandler(),
$likeHandler,

Check failure on line 70 in src/Reader/EntityReader.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.1-ubuntu-latest

InvalidArgument

src/Reader/EntityReader.php:70:13: InvalidArgument: Argument 13 of Yiisoft\Data\Cycle\Reader\EntityReader::setFilterHandlers expects Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler, but Yiisoft\Data\Cycle\Reader\FilterHandler\LikeHandler\BaseLikeHandler provided (see https://psalm.dev/004)

Check failure on line 70 in src/Reader/EntityReader.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.2-ubuntu-latest

InvalidArgument

src/Reader/EntityReader.php:70:13: InvalidArgument: Argument 13 of Yiisoft\Data\Cycle\Reader\EntityReader::setFilterHandlers expects Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler, but Yiisoft\Data\Cycle\Reader\FilterHandler\LikeHandler\BaseLikeHandler provided (see https://psalm.dev/004)

Check failure on line 70 in src/Reader/EntityReader.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.4-ubuntu-latest

InvalidArgument

src/Reader/EntityReader.php:70:13: InvalidArgument: Argument 13 of Yiisoft\Data\Cycle\Reader\EntityReader::setFilterHandlers expects Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler, but Yiisoft\Data\Cycle\Reader\FilterHandler\LikeHandler\BaseLikeHandler provided (see https://psalm.dev/004)
new FilterHandler\NotHandler(),
);

Expand Down Expand Up @@ -148,8 +147,7 @@
/**
* @psalm-mutation-free
*/
#[\Override]
public function withAddedFilterHandlers(FilterHandlerInterface ...$filterHandlers): static
public function withAddedFilterHandlers(QueryBuilderFilterHandler ...$filterHandlers): static
{
$new = clone $this;
/** @psalm-suppress ImpureMethodCall */
Expand Down Expand Up @@ -207,15 +205,13 @@
return (string)($query instanceof Select ? $query->buildQuery() : $query);
}

private function setFilterHandlers(FilterHandlerInterface ...$filterHandlers): void
private function setFilterHandlers(QueryBuilderFilterHandler ...$filterHandlers): void
{
$handlers = [];
foreach ($filterHandlers as $filterHandler) {
if ($filterHandler instanceof QueryBuilderFilterHandler) {
$handlers[$filterHandler->getFilterClass()] = $filterHandler;
}
$handlers[$filterHandler->getFilterClass()] = $filterHandler;

Check failure on line 212 in src/Reader/EntityReader.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.1-ubuntu-latest

UndefinedInterfaceMethod

src/Reader/EntityReader.php:212:39: UndefinedInterfaceMethod: Method Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler::getFilterClass does not exist (see https://psalm.dev/181)

Check failure on line 212 in src/Reader/EntityReader.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.2-ubuntu-latest

UndefinedInterfaceMethod

src/Reader/EntityReader.php:212:39: UndefinedInterfaceMethod: Method Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler::getFilterClass does not exist (see https://psalm.dev/181)

Check failure on line 212 in src/Reader/EntityReader.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.4-ubuntu-latest

UndefinedInterfaceMethod

src/Reader/EntityReader.php:212:39: UndefinedInterfaceMethod: Method Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler::getFilterClass does not exist (see https://psalm.dev/181)
}
$this->filterHandlers = array_merge($this->filterHandlers, $handlers);

Check failure on line 214 in src/Reader/EntityReader.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.1-ubuntu-latest

InvalidPropertyAssignmentValue

src/Reader/EntityReader.php:214:33: InvalidPropertyAssignmentValue: $this->filterHandlers with declared type 'array<class-string, Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler>' cannot be assigned type 'array<array-key|class-string, Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler|array<array-key, array<never, never>>>' (see https://psalm.dev/145)

Check failure on line 214 in src/Reader/EntityReader.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.2-ubuntu-latest

InvalidPropertyAssignmentValue

src/Reader/EntityReader.php:214:33: InvalidPropertyAssignmentValue: $this->filterHandlers with declared type 'array<class-string, Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler>' cannot be assigned type 'array<array-key|class-string, Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler|array<array-key, array<never, never>>>' (see https://psalm.dev/145)

Check failure on line 214 in src/Reader/EntityReader.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.4-ubuntu-latest

InvalidPropertyAssignmentValue

src/Reader/EntityReader.php:214:33: InvalidPropertyAssignmentValue: $this->filterHandlers with declared type 'array<class-string, Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler>' cannot be assigned type 'array<array-key|class-string, Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler|array<array-key, array<never, never>>>' (see https://psalm.dev/145)
}

private function buildSelectQuery(): SelectQuery|Select
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/AllHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,11 @@
use Cycle\ORM\Select\QueryBuilder;
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\All;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class AllHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class AllHandler implements QueryBuilderFilterHandler
{
#[\Override]

Check failure on line 15 in src/Reader/FilterHandler/AllHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.2-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/AllHandler.php:15:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)

Check failure on line 15 in src/Reader/FilterHandler/AllHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.4-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/AllHandler.php:15:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)
public function getFilterClass(): string
{
return All::class;
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/AndXHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,11 @@
use Yiisoft\Data\Cycle\Exception\NotSupportedFilterException;
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\AndX;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class AndXHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class AndXHandler implements QueryBuilderFilterHandler
{
#[\Override]

Check failure on line 15 in src/Reader/FilterHandler/AndXHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.2-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/AndXHandler.php:15:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)

Check failure on line 15 in src/Reader/FilterHandler/AndXHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.4-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/AndXHandler.php:15:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)
public function getFilterClass(): string
{
return AndX::class;
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/BetweenHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@

use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\Between;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class BetweenHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class BetweenHandler implements QueryBuilderFilterHandler
{
#[\Override]

Check failure on line 13 in src/Reader/FilterHandler/BetweenHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.2-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/BetweenHandler.php:13:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)

Check failure on line 13 in src/Reader/FilterHandler/BetweenHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.4-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/BetweenHandler.php:13:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)
public function getFilterClass(): string
{
return Between::class;
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/EqualsHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@

use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\Equals;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class EqualsHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class EqualsHandler implements QueryBuilderFilterHandler
{
#[\Override]

Check failure on line 13 in src/Reader/FilterHandler/EqualsHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.2-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/EqualsHandler.php:13:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)

Check failure on line 13 in src/Reader/FilterHandler/EqualsHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.4-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/EqualsHandler.php:13:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)
public function getFilterClass(): string
{
return Equals::class;
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/EqualsNullHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@

use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\EqualsNull;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class EqualsNullHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class EqualsNullHandler implements QueryBuilderFilterHandler
{
#[\Override]

Check failure on line 13 in src/Reader/FilterHandler/EqualsNullHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.2-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/EqualsNullHandler.php:13:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)

Check failure on line 13 in src/Reader/FilterHandler/EqualsNullHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.4-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/EqualsNullHandler.php:13:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)
public function getFilterClass(): string
{
return EqualsNull::class;
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/GreaterThanHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@

use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\GreaterThan;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class GreaterThanHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class GreaterThanHandler implements QueryBuilderFilterHandler
{
#[\Override]

Check failure on line 13 in src/Reader/FilterHandler/GreaterThanHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.2-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/GreaterThanHandler.php:13:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)

Check failure on line 13 in src/Reader/FilterHandler/GreaterThanHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.4-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/GreaterThanHandler.php:13:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)
public function getFilterClass(): string
{
return GreaterThan::class;
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/GreaterThanOrEqualHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@

use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\GreaterThanOrEqual;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class GreaterThanOrEqualHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class GreaterThanOrEqualHandler implements QueryBuilderFilterHandler
{
#[\Override]

Check failure on line 13 in src/Reader/FilterHandler/GreaterThanOrEqualHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.2-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/GreaterThanOrEqualHandler.php:13:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)

Check failure on line 13 in src/Reader/FilterHandler/GreaterThanOrEqualHandler.php

View workflow job for this annotation

GitHub Actions / psalm / PHP 8.4-ubuntu-latest

InvalidOverride

src/Reader/FilterHandler/GreaterThanOrEqualHandler.php:13:5: InvalidOverride: Method getFilterClass does not match any parent method (see https://psalm.dev/357)
public function getFilterClass(): string
{
return GreaterThanOrEqual::class;
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/InHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@
use Cycle\Database\Injection\Parameter;
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\In;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class InHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class InHandler implements QueryBuilderFilterHandler
{
#[\Override]
public function getFilterClass(): string
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/LessThanHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@

use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\LessThan;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class LessThanHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class LessThanHandler implements QueryBuilderFilterHandler
{
#[\Override]
public function getFilterClass(): string
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/LessThanOrEqualHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@

use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\LessThanOrEqual;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class LessThanOrEqualHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class LessThanOrEqualHandler implements QueryBuilderFilterHandler
{
#[\Override]
public function getFilterClass(): string
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/LikeHandler/BaseLikeHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@
use Stringable;
use Yiisoft\Data\Reader\Filter\Like;
use Yiisoft\Data\Reader\Filter\LikeMode;
use Yiisoft\Data\Reader\FilterHandlerInterface;

abstract class BaseLikeHandler implements FilterHandlerInterface
abstract class BaseLikeHandler
{
protected array $escapingReplacements = [
'%' => '\%',
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/LikeHandler/LikeHandlerFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@
namespace Yiisoft\Data\Cycle\Reader\FilterHandler\LikeHandler;

use RuntimeException;
use Yiisoft\Data\Reader\FilterHandlerInterface;

/**
* @internal
*/
final class LikeHandlerFactory
{
public static function getLikeHandler(string $driverType): FilterHandlerInterface
public static function getLikeHandler(string $driverType): BaseLikeHandler
{
// default - ignored due to the complexity of testing and preventing splitting of databaseDriver argument.
// @codeCoverageIgnoreStart
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/NoneHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@
use Cycle\ORM\Select\QueryBuilder;
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\None;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class NoneHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class NoneHandler implements QueryBuilderFilterHandler
{
#[\Override]
public function getFilterClass(): string
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/NotHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@
use Yiisoft\Data\Reader\Filter\Like;
use Yiisoft\Data\Reader\Filter\Not;
use Yiisoft\Data\Reader\Filter\OrX;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class NotHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class NotHandler implements QueryBuilderFilterHandler
{
#[\Override]
public function getFilterClass(): string
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/FilterHandler/OrXHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@
use Yiisoft\Data\Cycle\Exception\NotSupportedFilterException;
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
use Yiisoft\Data\Reader\Filter\OrX;
use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

final class OrXHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
final class OrXHandler implements QueryBuilderFilterHandler
{
#[\Override]
public function getFilterClass(): string
Expand Down
3 changes: 1 addition & 2 deletions src/Reader/QueryBuilderFilterHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@

namespace Yiisoft\Data\Cycle\Reader;

use Yiisoft\Data\Reader\FilterHandlerInterface;
use Yiisoft\Data\Reader\FilterInterface;

interface QueryBuilderFilterHandler
{
/**
* @psalm-param array<class-string, FilterHandlerInterface & QueryBuilderFilterHandler> $handlers
* @psalm-param array<class-string, QueryBuilderFilterHandler> $handlers
*/
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array;
}
Loading