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

RequestFilter   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 66.67%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
c 1
b 0
f 0
lcom 1
cbo 2
dl 0
loc 37
ccs 8
cts 12
cp 0.6667
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A filter() 0 13 3
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