This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php namespace Tarsana\Functional; |
||
2 | /** |
||
3 | * Useful functions to handle objects (associative arrays are considered objects). |
||
4 | * @file |
||
5 | */ |
||
6 | |||
7 | /** |
||
8 | * Returns a deep copy of the given value. |
||
9 | * |
||
10 | * `Callable`s are not copied but returned by reference. |
||
11 | * ```php |
||
12 | * $data = (object) [ |
||
13 | * 'content' => (object) ['name' => 'foo'], |
||
14 | * 'other' => 'value' |
||
15 | * ]; |
||
16 | * |
||
17 | * $clonedData = F\clone_($data); |
||
18 | * $clonedData->content->name = 'bar'; |
||
19 | * |
||
20 | * $clonedData; //=> (object) ['content' => (object) ['name' => 'bar'], 'other' => 'value'] |
||
21 | * $data; //=> (object) ['content' => (object) ['name' => 'foo'], 'other' => 'value'] |
||
22 | * ``` |
||
23 | * |
||
24 | * @signature a -> a |
||
25 | * @param mixed $value |
||
0 ignored issues
–
show
|
|||
26 | * @return mixed |
||
27 | */ |
||
28 | function clone_() { |
||
29 | static $clone = false; |
||
30 | $clone = $clone ?: curry(function($value) use(&$clone) { |
||
31 | switch (type($value)) { |
||
32 | case 'Null': |
||
33 | case 'Boolean': |
||
34 | case 'String': |
||
35 | case 'Function': |
||
36 | case 'Resource': |
||
37 | case 'Number': |
||
38 | return $value; |
||
39 | case 'ArrayObject': |
||
40 | case 'Array': |
||
41 | case 'List': |
||
42 | return array_map($clone, $value); |
||
43 | case 'Error': |
||
44 | case 'Stream': |
||
45 | case 'Object': |
||
46 | $result = clone $value; |
||
47 | foreach (keys($value) as $key) { |
||
48 | $result->{$key} = $clone($result->{$key}); |
||
49 | } |
||
50 | return $result; |
||
51 | } |
||
52 | return $value; |
||
53 | }); |
||
54 | return _apply($clone, func_get_args()); |
||
55 | } |
||
56 | |||
57 | /** |
||
58 | * Converts an object to an associative array containing public non-static attributes. |
||
59 | * |
||
60 | * If `$object` is not an object, it is returned unchanged. |
||
61 | * |
||
62 | * ```php |
||
63 | * class AttributesTestClass { |
||
64 | * private $a; |
||
65 | * public $b = 1; |
||
66 | * public $c; |
||
67 | * private $d; |
||
68 | * static $e; |
||
69 | * } |
||
70 | * |
||
71 | * $test = new AttributesTestClass; |
||
72 | * F\attributes($test); //=> ['b' => 1, 'c' => null] |
||
73 | * ``` |
||
74 | * |
||
75 | * @stream |
||
76 | * @signature {k: v} -> {k: v} |
||
77 | * @param object|array $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
78 | * @return array |
||
79 | */ |
||
80 | function attributes() { |
||
81 | static $attrs = false; |
||
82 | $attrs = $attrs ?: curry(function($object) { |
||
83 | if (is_object($object)) |
||
84 | return get_object_vars($object); |
||
85 | return $object; |
||
86 | }); |
||
87 | return _apply($attrs, func_get_args()); |
||
88 | } |
||
89 | |||
90 | /** |
||
91 | * Returns a list of array's keys or object's public attributes names. |
||
92 | * |
||
93 | * ```php |
||
94 | * F\keys([1, 2, 3]); //=> [0, 1, 2] |
||
95 | * F\keys(['name' => 'foo', 'age' => 11]); //=> ['name', 'age'] |
||
96 | * F\keys((object)['name' => 'foo', 'age' => 11]); //=> ['name', 'age'] |
||
97 | * ``` |
||
98 | * |
||
99 | * @stream |
||
100 | * @signature [*] -> [Number] |
||
101 | * @signature {k: v} -> [k] |
||
102 | * @param object|array $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
103 | * @return array |
||
104 | */ |
||
105 | View Code Duplication | function keys() { |
|
0 ignored issues
–
show
This function seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
106 | static $keys = false; |
||
107 | $keys = $keys ?: curry(function($object) { |
||
108 | return is_object($object) |
||
109 | ? array_keys(get_object_vars($object)) |
||
110 | : array_keys($object); |
||
111 | }); |
||
112 | return _apply($keys, func_get_args()); |
||
113 | } |
||
114 | |||
115 | /** |
||
116 | * Returns a list of array's values or object's public attributes values. |
||
117 | * |
||
118 | * ```php |
||
119 | * F\values([1, 2, 3]); //=> [1, 2, 3] |
||
120 | * F\values(['name' => 'foo', 'age' => 11]); //=> ['foo', 11] |
||
121 | * F\values((object)['name' => 'foo', 'age' => 11]); //=> ['foo', 11] |
||
122 | * ``` |
||
123 | * |
||
124 | * @stream |
||
125 | * @signature [a] -> [a] |
||
126 | * @signature {k: v} -> [v] |
||
127 | * @param object|array $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
128 | * @return array |
||
129 | */ |
||
130 | View Code Duplication | function values() { |
|
0 ignored issues
–
show
This function seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
131 | static $values = false; |
||
132 | $values = $values ?: curry(function($object) { |
||
133 | return is_object($object) |
||
134 | ? array_values(get_object_vars($object)) |
||
135 | : array_values($object); |
||
136 | }); |
||
137 | return _apply($values, func_get_args()); |
||
138 | } |
||
139 | |||
140 | /** |
||
141 | * Checks if the given array or object has a specific key or public attribute. |
||
142 | * |
||
143 | * ```php |
||
144 | * class HasTestClass { |
||
145 | * public $a = 1; |
||
146 | * private $b = 2; |
||
147 | * protected $c = 3; |
||
148 | * public $d; |
||
149 | * } |
||
150 | * $array = [ |
||
151 | * 'type' => 'Array', |
||
152 | * 'length' => 78 |
||
153 | * ]; |
||
154 | * $array[3] = 'three'; |
||
155 | * $object = (object) ['name' => 'ok']; |
||
156 | * |
||
157 | * $hasName = F\has('name'); |
||
158 | * |
||
159 | * F\has('type', $array); //=> true |
||
160 | * F\has(3, $array); //=> true |
||
161 | * $hasName($array); //=> false |
||
162 | * $hasName($object); //=> true |
||
163 | * F\has('length', $object); //=> false |
||
164 | * F\has('a', new HasTestClass); //=> true |
||
165 | * F\has('b', new HasTestClass); //=> false |
||
166 | * ``` |
||
167 | * |
||
168 | * @stream |
||
169 | * @signature k -> {k: v} -> Boolean |
||
170 | * @param string|int $name |
||
0 ignored issues
–
show
There is no parameter named
$name . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
171 | * @param mixed $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
172 | * @return bool |
||
173 | */ |
||
174 | function has() { |
||
175 | static $has = false; |
||
176 | $has = $has ?: curry(function($name, $object){ |
||
177 | if (is_object($object)) return isset($object->{$name}); |
||
178 | if (is_array($object)) return isset($object[$name]); |
||
179 | return false; |
||
180 | }); |
||
181 | return _apply($has, func_get_args()); |
||
182 | } |
||
183 | |||
184 | /** |
||
185 | * Gets the value of a key from an array or the |
||
186 | * value of an public attribute from an object. |
||
187 | * |
||
188 | * If the key/attribute is missing, `null` is returned. |
||
189 | * ```php |
||
190 | * $data = [ |
||
191 | * ['name' => 'foo', 'type' => 'test'], |
||
192 | * ['name' => 'bar', 'type' => 'test'], |
||
193 | * (object) ['name' => 'baz'], |
||
194 | * [1, 2, 3] |
||
195 | * ]; |
||
196 | * $nameOf = F\get('name'); |
||
197 | * F\get(0, $data); //=> ['name' => 'foo', 'type' => 'test'] |
||
198 | * $nameOf($data[1]); //=> 'bar' |
||
199 | * $nameOf($data[2]); //=> 'baz' |
||
200 | * $nameOf($data[3]); //=> null |
||
201 | * ``` |
||
202 | * |
||
203 | * @stream |
||
204 | * @signature k -> {k: v} -> Maybe(v) |
||
205 | * @param string $name |
||
0 ignored issues
–
show
There is no parameter named
$name . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
206 | * @param array $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
207 | * @return mixed |
||
208 | */ |
||
209 | function get() { |
||
210 | static $get = false; |
||
211 | $get = $get ?: curry(function($name, $object){ |
||
212 | return is_object($object) |
||
213 | ? (isset($object->{$name}) ? $object->{$name} : null) |
||
214 | : (isset($object[$name]) ? $object[$name] : null); |
||
215 | }); |
||
216 | return _apply($get, func_get_args()); |
||
217 | } |
||
218 | |||
219 | /** |
||
220 | * Gets a value from an array/object using a path of keys/attributes. |
||
221 | * |
||
222 | * ```php |
||
223 | * $data = [ |
||
224 | * ['name' => 'foo', 'type' => 'test'], |
||
225 | * ['name' => 'bar', 'type' => 'test'], |
||
226 | * (object) ['name' => 'baz', 'scores' => [1, 2, 3]] |
||
227 | * ]; |
||
228 | * $nameOfFirst = F\getPath([0, 'name']); |
||
229 | * $nameOfFirst($data); //=> 'foo' |
||
230 | * F\getPath([2, 'scores', 1], $data); //=> 2 |
||
231 | * F\getPath([2, 'foo', 1], $data); //=> null |
||
232 | * ``` |
||
233 | * |
||
234 | * @stream |
||
235 | * @signature [k] -> {k: v} -> v |
||
236 | * @param array $path |
||
0 ignored issues
–
show
There is no parameter named
$path . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
237 | * @param mixed $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
238 | * @return mixed |
||
239 | */ |
||
240 | View Code Duplication | function getPath() { |
|
0 ignored issues
–
show
This function seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
241 | static $getPath = false; |
||
242 | $getPath = $getPath ?: curry(function($path, $object) { |
||
243 | $result = $object; |
||
244 | foreach ($path as &$attr) { |
||
245 | $result = get($attr, $result); |
||
246 | } |
||
247 | return $result; |
||
248 | }); |
||
249 | return _apply($getPath, func_get_args()); |
||
250 | } |
||
251 | |||
252 | /** |
||
253 | * Returns a new array or object with the value of a key or a public attribute set |
||
254 | * to a specific value. |
||
255 | * |
||
256 | * if the key/attribute is missing and `$object` is an `array` |
||
257 | * or `stdClass`; the key/attribute is added. Otherwise `null` is returned. |
||
258 | * ```php |
||
259 | * $task = ['name' => 'test', 'complete' => false]; |
||
260 | * $done = F\set('complete', true); |
||
261 | * $done($task); //=> ['name' => 'test', 'complete' => true] |
||
262 | * $done((object) $task); //=> (object) ['name' => 'test', 'complete' => true] |
||
263 | * F\set('description', 'Some text here', $task); //=> ['name' => 'test', 'complete' => false, 'description' => 'Some text here'] |
||
264 | * ``` |
||
265 | * |
||
266 | * @stream |
||
267 | * @signature k -> v -> {k: v} -> {k: v} |
||
268 | * @param string|int $name |
||
0 ignored issues
–
show
There is no parameter named
$name . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
269 | * @param mixed $value |
||
0 ignored issues
–
show
There is no parameter named
$value . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
270 | * @param mixed $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
271 | * @return mixed |
||
272 | */ |
||
273 | function set() { |
||
274 | static $set = false; |
||
275 | $set = $set ?: curry(function($name, $value, $object) { |
||
276 | if (is_object($object)) { |
||
277 | $object = clone_($object); |
||
278 | $object->{$name} = $value; |
||
279 | } else |
||
280 | $object[$name] = $value; |
||
281 | return $object; |
||
282 | }); |
||
283 | return _apply($set, func_get_args()); |
||
284 | } |
||
285 | |||
286 | /** |
||
287 | * Updates the value of a key or public attribute using a callable. |
||
288 | * |
||
289 | * ```php |
||
290 | * $person = [ |
||
291 | * 'name' => 'foo', |
||
292 | * 'age' => 11 |
||
293 | * ]; |
||
294 | * $growUp = F\update('age', F\plus(1)); |
||
295 | * $growUp($person); //=> ['name' => 'foo', 'age' => 12] |
||
296 | * // updating a missing attribute has no effect |
||
297 | * F\update('wow', F\plus(1), $person); //=> ['name' => 'foo', 'age' => 11] |
||
298 | * ``` |
||
299 | * |
||
300 | * @stream |
||
301 | * @signature k -> (v -> v) -> {k: v} -> {k: v} |
||
302 | * @param string|int $name |
||
0 ignored issues
–
show
There is no parameter named
$name . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
303 | * @param callable $fn |
||
0 ignored issues
–
show
There is no parameter named
$fn . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
304 | * @param mixed $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
305 | * @return mixed |
||
306 | */ |
||
307 | View Code Duplication | function update() { |
|
0 ignored issues
–
show
This function seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
308 | static $update = false; |
||
309 | $update = $update ?: curry(function($name, $fn, $object) { |
||
310 | $value = get($name, $object); |
||
311 | return (null === $value) ? $object : set($name, $fn($value), $object); |
||
0 ignored issues
–
show
The call to
set() has too many arguments starting with $fn($value) .
This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue. If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. In this case you can add the ![]() |
|||
312 | }); |
||
313 | return _apply($update, func_get_args()); |
||
314 | } |
||
315 | |||
316 | /** |
||
317 | * Checks if an attribute/value of an object/array passes the given predicate. |
||
318 | * |
||
319 | * ```php |
||
320 | * $foo = ['name' => 'foo', 'age' => 11]; |
||
321 | * $isAdult = F\satisfies(F\lte(18), 'age'); |
||
322 | * F\satisfies(F\startsWith('f'), 'name', $foo); //=> true |
||
323 | * F\satisfies(F\startsWith('g'), 'name', $foo); //=> false |
||
324 | * F\satisfies(F\startsWith('g'), 'friends', $foo); //=> false |
||
325 | * $isAdult($foo); //=> false |
||
326 | * ``` |
||
327 | * |
||
328 | * @stream |
||
329 | * @signature (a -> Boolean) -> k -> {k : a} -> Boolean |
||
330 | * @param callable $predicate |
||
0 ignored issues
–
show
There is no parameter named
$predicate . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
331 | * @param string|int $key |
||
0 ignored issues
–
show
There is no parameter named
$key . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
332 | * @param mixed $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
333 | * @return bool |
||
334 | */ |
||
335 | function satisfies() { |
||
336 | static $satisfies = false; |
||
337 | $satisfies = $satisfies ?: curry(function($predicate, $key, $object) { |
||
338 | return has($key, $object) && $predicate(get($key, $object)); |
||
339 | }); |
||
340 | return _apply($satisfies, func_get_args()); |
||
341 | } |
||
342 | |||
343 | /** |
||
344 | * Checks if a list of attribute/value of an object/array passes all the given predicates. |
||
345 | * |
||
346 | * ```php |
||
347 | * $persons = [ |
||
348 | * ['name' => 'foo', 'age' => 11], |
||
349 | * ['name' => 'bar', 'age' => 9], |
||
350 | * ['name' => 'baz', 'age' => 16], |
||
351 | * ['name' => 'zeta', 'age' => 33], |
||
352 | * ['name' => 'beta', 'age' => 25] |
||
353 | * ]; |
||
354 | * |
||
355 | * $isValid = F\satisfiesAll([ |
||
356 | * 'name' => F\startsWith('b'), |
||
357 | * 'age' => F\lte(15) |
||
358 | * ]); |
||
359 | * |
||
360 | * F\filter($isValid, $persons); //=> [['name' => 'baz', 'age' => 16], ['name' => 'beta', 'age' => 25]] |
||
361 | * ``` |
||
362 | * |
||
363 | * @stream |
||
364 | * @signature {String: (a -> Boolean)} -> {k : a} -> Boolean |
||
365 | * @param array $predicates |
||
0 ignored issues
–
show
There is no parameter named
$predicates . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
366 | * @param mixed $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
367 | * @return bool |
||
368 | */ |
||
369 | View Code Duplication | function satisfiesAll() { |
|
0 ignored issues
–
show
This function seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
370 | static $satisfiesAll = false; |
||
371 | $satisfiesAll = $satisfiesAll ?: curry(function($predicates, $object) { |
||
372 | foreach ($predicates as $key => $predicate) { |
||
373 | if (!satisfies($predicate, $key, $object)) |
||
374 | return false; |
||
375 | } |
||
376 | return true; |
||
377 | }); |
||
378 | return _apply($satisfiesAll, func_get_args()); |
||
379 | } |
||
380 | |||
381 | /** |
||
382 | * Checks if a list of attribute/value of an object/array passes any of the given predicates. |
||
383 | * |
||
384 | * ```php |
||
385 | * $persons = [ |
||
386 | * ['name' => 'foo', 'age' => 11], |
||
387 | * ['name' => 'bar', 'age' => 9], |
||
388 | * ['name' => 'baz', 'age' => 16], |
||
389 | * ['name' => 'zeta', 'age' => 33], |
||
390 | * ['name' => 'beta', 'age' => 25] |
||
391 | * ]; |
||
392 | * |
||
393 | * $isValid = F\satisfiesAny([ |
||
394 | * 'name' => F\startsWith('b'), |
||
395 | * 'age' => F\lte(15) |
||
396 | * ]); |
||
397 | * |
||
398 | * F\filter($isValid, $persons); //=> [['name' => 'bar', 'age' => 9], ['name' => 'baz', 'age' => 16], ['name' => 'zeta', 'age' => 33], ['name' => 'beta', 'age' => 25]] |
||
399 | * ``` |
||
400 | * |
||
401 | * @stream |
||
402 | * @signature {String: (a -> Boolean)} -> {k : a} -> Boolean |
||
403 | * @param array $predicates |
||
0 ignored issues
–
show
There is no parameter named
$predicates . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
404 | * @param mixed $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
405 | * @return bool |
||
406 | */ |
||
407 | View Code Duplication | function satisfiesAny() { |
|
0 ignored issues
–
show
This function seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
408 | static $satisfiesAny = false; |
||
409 | $satisfiesAny = $satisfiesAny ?: curry(function($predicates, $object) { |
||
410 | foreach ($predicates as $key => $predicate) { |
||
411 | if (satisfies($predicate, $key, $object)) |
||
412 | return true; |
||
413 | } |
||
414 | return false; |
||
415 | }); |
||
416 | return _apply($satisfiesAny, func_get_args()); |
||
417 | } |
||
418 | |||
419 | /** |
||
420 | * Converts an object or associative array to an array of [key, value] pairs. |
||
421 | * |
||
422 | * ```php |
||
423 | * $list = ['key' => 'value', 'number' => 53, 'foo', 'bar']; |
||
424 | * F\toPairs($list); //=> [['key', 'value'], ['number', 53], [0, 'foo'], [1, 'bar']] |
||
425 | * ``` |
||
426 | * |
||
427 | * @stream |
||
428 | * @signature {k: v} -> [(k,v)] |
||
429 | * @signature [v] -> [(Number,v)] |
||
430 | * @param array $object |
||
0 ignored issues
–
show
There is no parameter named
$object . Was it maybe removed?
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 /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
431 | * @return array |
||
432 | */ |
||
433 | function toPairs() { |
||
434 | static $toPairs = false; |
||
435 | $toPairs = $toPairs ?: curry(function($object) { |
||
436 | if (is_object($object)) |
||
437 | $object = get_object_vars($object); |
||
438 | $result = []; |
||
439 | foreach ($object as $key => $value) { |
||
440 | $result[] = [$key, $value]; |
||
441 | } |
||
442 | return $result; |
||
443 | }); |
||
444 | return _apply($toPairs, func_get_args()); |
||
445 | } |
||
446 |
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.