• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

contributte / datagrid / 15346293061

30 May 2025 12:00PM UTC coverage: 35.433% (-0.06%) from 35.492%
15346293061

push

github

f3l1x
QA: fix phpstan

4 of 7 new or added lines in 2 files covered. (57.14%)

127 existing lines in 9 files now uncovered.

1198 of 3381 relevant lines covered (35.43%)

0.35 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

66.67
/src/DataSource/FilterableDataSource.php
1
<?php declare(strict_types = 1);
2

3
namespace Contributte\Datagrid\DataSource;
4

5
use Contributte\Datagrid\Filter\Filter;
6
use Contributte\Datagrid\Filter\FilterDate;
7
use Contributte\Datagrid\Filter\FilterDateRange;
8
use Contributte\Datagrid\Filter\FilterMultiSelect;
9
use Contributte\Datagrid\Filter\FilterRange;
10
use Contributte\Datagrid\Filter\FilterSelect;
11
use Contributte\Datagrid\Filter\FilterText;
12
use Nette\Utils\ArrayHash;
13

14
abstract class FilterableDataSource
15
{
16

17
        abstract public function getDataSource(): mixed;
18

19
        /**
20
         * {@inheritDoc}
21
         *
22
         * @param array<Filter> $filters
23
         */
24
        public function filter(array $filters): void
1✔
25
        {
26
                foreach ($filters as $filter) {
1✔
27
                        if ($filter->isValueSet()) {
1✔
28
                                if ($filter->getConditionCallback() !== null) {
1✔
29
                                        $value = $filter->getValue();
×
30

UNCOV
31
                                        if (is_array($value)) {
×
UNCOV
32
                                                $value = ArrayHash::from($filter->getValue());
×
33
                                        }
34

UNCOV
35
                                        ($filter->getConditionCallback())($this->getDataSource(), $value);
×
36
                                } else {
37
                                        if ($filter instanceof FilterText) {
1✔
38
                                                $this->applyFilterText($filter);
1✔
39
                                        } elseif ($filter instanceof FilterMultiSelect) {
1✔
UNCOV
40
                                                $this->applyFilterMultiSelect($filter);
×
41
                                        } elseif ($filter instanceof FilterSelect) {
1✔
42
                                                $this->applyFilterSelect($filter);
1✔
43
                                        } elseif ($filter instanceof FilterDate) {
1✔
44
                                                $this->applyFilterDate($filter);
×
45
                                        } elseif ($filter instanceof FilterDateRange) {
1✔
UNCOV
46
                                                $this->applyFilterDateRange($filter);
×
47
                                        } elseif ($filter instanceof FilterRange) {
1✔
48
                                                $this->applyFilterRange($filter);
1✔
49
                                        }
50
                                }
51
                        }
52
                }
53
        }
1✔
54

55
        abstract protected function applyFilterDate(FilterDate $filter): void;
56

57
        abstract protected function applyFilterDateRange(FilterDateRange $filter): void;
58

59
        abstract protected function applyFilterRange(FilterRange $filter): void;
60

61
        abstract protected function applyFilterText(FilterText $filter): void;
62

63
        abstract protected function applyFilterMultiSelect(FilterMultiSelect $filter): void;
64

65
        abstract protected function applyFilterSelect(FilterSelect $filter): void;
66

67
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc