учитывая что что он на вход получает array, ты так и не выдал примера зачем это может быть нужно
я же вроде писал, что это нужно просто для того чтобы оставить пользователю возможность его заменить
типа:
final class UserFilter implements FilterInterface
{
private $user;
public function __construct(User $user)
{
$this->user;
}
public function getCriteria(): array
{
return [
'user_id' => $this->user->id,
];
}
}
$dataReader->withFilter(new UserFilter($user));