Completed
Pull Request — dev (#6)
by Arnaud
07:28 queued 04:28
created

RequestFilter   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

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
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
    public function __construct(array $filters = [])
21
    {
22
        $this->filters = $filters;
23
    }
24
25
    /**
26
     * Filter request values according to configured filters
27
     *
28
     * @param Request $request
29
     * @return ParameterBag
30
     */
31
    public function filter(Request $request)
32
    {
33
        $filteredValues = new ParameterBag();
34
35
        foreach ($this->filters as $filter) {
36
            $value = $request->get($filter);
37
38
            if ($value !== null) {
39
                $filteredValues->set($filter, $value);
40
            }
41
        }
42
        return $filteredValues;
43
    }
44
}
45