Completed
Push — dev ( 4306de...25864c )
by Arnaud
02:52
created

RequestFilter::filter()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 3.7898

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 13
ccs 5
cts 9
cp 0.5556
rs 9.4285
cc 3
eloc 7
nc 3
nop 1
crap 3.7898
1
<?php
2
3
namespace LAG\AdminBundle\Filter;
4
5
use Symfony\Component\HttpFoundation\Request;
6
use Symfony\Component\HttpFoundation\ParameterBag;
7
8
class RequestFilter
9
{
10
    /**
11
     * @var array
12
     */
13
    protected $filters;
14
15
    /**
16
     * RequestFilter constructor.
17
     *
18
     * @param array $filters
19
     */
20 5
    public function __construct(array $filters = [])
21
    {
22 5
        $this->filters = $filters;
23 5
    }
24
25
    /**
26
     * Filter request values according to configured filters
27
     *
28
     * @param Request $request
29
     * @return ParameterBag
30
     */
31 5
    public function filter(Request $request)
32
    {
33 5
        $filteredValues = new ParameterBag();
34
35 5
        foreach ($this->filters as $filter) {
36
            $value = $request->get($filter);
37
38
            if ($value !== null) {
39
                $filteredValues->set($filter, $value);
40
            }
41 5
        }
42 5
        return $filteredValues;
43
    }
44
}
45