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) |
||
128 | |||
129 | |||
130 | private function computeSpecificity($entry) |
||
145 | |||
146 | |||
147 | /** |
||
148 | * @param string $type |
||
149 | * @return bool |
||
150 | */ |
||
151 | 2 | public function contains($type) |
|
162 | |||
163 | |||
164 | /** |
||
165 | * @param array $data |
||
166 | * @param array $expected |
||
167 | * @return bool |
||
168 | */ |
||
169 | 1 | private function matchFound($data, $expected) |
|
179 | |||
180 | /** |
||
181 | * @param string $options |
||
182 | * @return null|string |
||
183 | */ |
||
184 | 13 | public function getPreferred($options) |
|
194 | |||
195 | |||
196 | /** |
||
197 | * @param array $data |
||
198 | * @param array $expected |
||
|
|||
199 | * @return null|string |
||
200 | */ |
||
201 | 12 | private function findFormatedEntry($data, $options) |
|
213 | |||
214 | |||
215 | /** |
||
216 | * @param array $entry |
||
217 | * @return string |
||
218 | */ |
||
219 | 12 | public function getFormatedEntry($entry) |
|
233 | |||
234 | |||
235 | /** |
||
236 | * @param array $needle |
||
237 | * @param array[] $haystack |
||
238 | * @return null|array |
||
239 | */ |
||
240 | 12 | private function obtainEntryFromList(array $needle, $haystack) |
|
250 | |||
251 | |||
252 | /** |
||
253 | * @param string $left |
||
254 | * @param string $right |
||
255 | * @return bool |
||
256 | */ |
||
257 | 1 | private function isMatch(array $left, array $right) |
|
269 | |||
270 | |||
271 | /** |
||
272 | * @param string $target |
||
273 | * @param string pattern |
||
274 | * @return string |
||
275 | */ |
||
276 | 10 | private function replaceStars($target, $pattern) |
|
291 | } |
||
292 |
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.