FilterFactory::newSanitizeSpec()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
/**
3
 *
4
 * This file is part of Aura for PHP.
5
 *
6
 * @license http://opensource.org/licenses/bsd-license.php BSD
7
 *
8
 */
9
namespace Aura\Filter;
10
11
use Aura\Filter\Failure\FailureCollection;
12
use Aura\Filter\Locator\SanitizeLocator;
13
use Aura\Filter\Locator\ValidateLocator;
14
use Aura\Filter\Spec\SanitizeSpec;
15
use Aura\Filter\Spec\ValidateSpec;
16
17
/**
18
 *
19
 * Factory to create Filter objects.
20
 *
21
 * @package Aura.Filter
22
 *
23
 */
24
class FilterFactory
25
{
26
    /**
27
     *
28
     * Additional factories for the ValidateLocator.
29
     *
30
     * @var array
31
     *
32
     */
33
    protected $validate_factories;
34
35
    /**
36
     *
37
     * Additional factories for the SanitizeLocator.
38
     *
39
     * @var array
40
     *
41
     */
42
    protected $sanitize_factories;
43
44
    /**
45
     *
46
     * Constructor.
47
     *
48
     * @param array $validate_factories Additional factories for the ValidateLocator.
49
     *
50
     * @param array $sanitize_factories Additional factories for the SanitizeLocator.
51
     *
52
     * @return self
0 ignored issues
show
Comprehensibility Best Practice introduced by
Adding a @return annotation to constructors is generally not recommended as a constructor does not have a meaningful return value.

Adding a @return annotation to a constructor is not recommended, since a constructor does not have a meaningful return value.

Please refer to the PHP core documentation on constructors.

Loading history...
53
     *
54
     */
55 11
    public function __construct(
56
        array $validate_factories = array(),
57
        array $sanitize_factories = array()
58
    ) {
59 11
        $this->validate_factories = $validate_factories;
60 11
        $this->sanitize_factories = $sanitize_factories;
61 11
    }
62
63
    /**
64
     *
65
     * Returns a new Filter instance.
66
     *
67
     * @param string $class The filter class to instantiate.
68
     *
69
     * @return SubjectFilter
70
     *
71
     */
72 10
    public function newSubjectFilter($class = 'Aura\Filter\SubjectFilter')
73
    {
74 10
        return new $class(
75 10
            $this->newValidateSpec(),
76 10
            $this->newSanitizeSpec(),
77 10
            $this->newFailureCollection()
78
        );
79
    }
80
81
    /**
82
     *
83
     * Returns a new ValueFilter instance.
84
     *
85
     * @return ValueFilter
86
     *
87
     */
88 1
    public function newValueFilter()
89
    {
90 1
        return new ValueFilter(
91 1
            $this->newValidateLocator(),
92 1
            $this->newSanitizeLocator()
93
        );
94
    }
95
96
    /**
97
     *
98
     * Returns a new ValidateSpec instance.
99
     *
100
     * @return ValidateSpec
101
     *
102
     */
103 10
    public function newValidateSpec()
104
    {
105 10
        return new ValidateSpec($this->newValidateLocator());
106
    }
107
108
    /**
109
     *
110
     * Returns a new SanitizeSpec instance.
111
     *
112
     * @return SanitizeSpec
113
     *
114
     */
115 10
    public function newSanitizeSpec()
116
    {
117 10
        return new SanitizeSpec($this->newSanitizeLocator());
118
    }
119
120
    /**
121
     *
122
     * Returns a new ValidateLocator instance.
123
     *
124
     * @return ValidateLocator
125
     *
126
     */
127 11
    public function newValidateLocator()
128
    {
129 11
        return new ValidateLocator($this->validate_factories);
130
    }
131
132
    /**
133
     *
134
     * Returns a new SanitizeLocator instance.
135
     *
136
     * @return SanitizeLocator
137
     *
138
     */
139 11
    public function newSanitizeLocator()
140
    {
141 11
        return new SanitizeLocator($this->sanitize_factories);
142
    }
143
144
    /**
145
     *
146
     * Returns a new FailureCollection instance.
147
     *
148
     * @return FailureCollection
149
     *
150
     */
151 10
    public function newFailureCollection()
152
    {
153 10
        return new FailureCollection();
154
    }
155
}
156