1 | <?php |
||
5 | class Accept extends Common |
||
6 | { |
||
7 | |||
8 | protected $headerName = 'Accept'; |
||
9 | |||
10 | |||
11 | /** |
||
12 | * @param string $headerValue |
||
13 | * @return array[] |
||
14 | */ |
||
15 | 10 | protected function extractData($headerValue) |
|
22 | |||
23 | |||
24 | /** |
||
25 | * @param array $elements |
||
26 | */ |
||
27 | 10 | private function obtainGroupedElements($elements) |
|
28 | { |
||
29 | 10 | $result = []; |
|
30 | |||
31 | 10 | foreach ($elements as $item) { |
|
32 | 10 | $item = $this->obtainAssessedItem($item); |
|
33 | 10 | $quality = $item[ 'q' ]; |
|
34 | |||
35 | 10 | if (array_key_exists($quality, $result) === false) { |
|
36 | 10 | $result[$quality] = []; |
|
37 | } |
||
38 | |||
39 | 10 | $result[$quality][] = $item; |
|
40 | } |
||
41 | |||
42 | 10 | return $result; |
|
43 | } |
||
44 | |||
45 | |||
46 | /** |
||
47 | * @param string $item |
||
48 | * @return array |
||
49 | */ |
||
50 | 11 | private function obtainAssessedItem($item) |
|
51 | { |
||
52 | 11 | $result = []; |
|
53 | 11 | $parts = preg_split('#;\s?#', $item, -1, \PREG_SPLIT_NO_EMPTY); |
|
54 | 11 | $result['value'] = array_shift($parts); |
|
55 | |||
56 | 11 | foreach ($parts as $item) { |
|
57 | 9 | list($key, $value) = explode('=', $item . '='); |
|
58 | 9 | $result[$key] = $value; |
|
59 | } |
||
60 | |||
61 | 11 | $result = $result + ['q' => '1']; |
|
62 | |||
63 | 11 | return $result; |
|
64 | } |
||
65 | |||
66 | |||
67 | /** |
||
68 | * @param array[] $elements |
||
69 | * @return array[] |
||
70 | */ |
||
71 | 10 | private function obtainSortedQualityList($elements) |
|
82 | |||
83 | |||
84 | /** |
||
85 | * @param array[] $elements |
||
86 | * @param array $keys |
||
87 | * @return array[] |
||
88 | */ |
||
89 | 10 | private function obtainSortedElements($elements, $keys) |
|
103 | |||
104 | |||
105 | private function sortBySpecificity($list) |
||
122 | |||
123 | |||
124 | private function computeSpecificity($entry) |
||
139 | |||
140 | |||
141 | /** |
||
142 | * @param string $type |
||
143 | * @return bool |
||
144 | */ |
||
145 | 2 | public function contains($type) |
|
156 | |||
157 | |||
158 | /** |
||
159 | * @param array $data |
||
160 | * @param array $expected |
||
161 | * @return bool |
||
162 | */ |
||
163 | 1 | private function matchFound($data, $expected) |
|
173 | |||
174 | /** |
||
175 | * @param string $options |
||
176 | * @return null|string |
||
177 | */ |
||
178 | 13 | public function getPreferred($options) |
|
188 | |||
189 | |||
190 | /** |
||
191 | * @param array $data |
||
192 | * @param array $expected |
||
|
|||
193 | * @return null|string |
||
194 | */ |
||
195 | 12 | private function findFormatedEntry($data, $options) |
|
207 | |||
208 | |||
209 | /** |
||
210 | * @param array $entry |
||
211 | * @return string |
||
212 | */ |
||
213 | 12 | public function getFormatedEntry($entry) |
|
227 | |||
228 | |||
229 | /** |
||
230 | * @param array $needle |
||
231 | * @param array[] $haystack |
||
232 | * @return null|array |
||
233 | */ |
||
234 | 12 | private function obtainEntryFromList(array $needle, $haystack) |
|
244 | |||
245 | |||
246 | /** |
||
247 | * @param string $left |
||
248 | * @param string $right |
||
249 | * @return bool |
||
250 | */ |
||
251 | 1 | private function isMatch(array $left, array $right) |
|
263 | |||
264 | |||
265 | /** |
||
266 | * @param string $target |
||
267 | * @param string pattern |
||
268 | * @return string |
||
269 | */ |
||
270 | 10 | private function replaceStars($target, $pattern) |
|
285 | } |
||
286 |
This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.
Consider the following example. The parameter
$italy
is not defined by the methodfinale(...)
.The most likely cause is that the parameter was removed, but the annotation was not.