Passed
Push — master ( 7cea26...0cadd8 )
by Caen
02:53
created

InvokableAction   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 7
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 1
eloc 2
c 2
b 0
f 0
dl 0
loc 7
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A call() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Hyde\Framework\Concerns;
6
7
/**
8
 * Base class for invokable actions. Provides a helper to invoke the action statically.
9
 *
10
 * @see \Hyde\Framework\Testing\Feature\InvokableActionTest
11
 */
12
abstract class InvokableAction
13
{
14
    abstract public function __invoke();
15
16
    public static function call(...$args)
17
    {
18
        return (new static(...$args))->__invoke();
0 ignored issues
show
Unused Code introduced by
The call to Hyde\Framework\Concerns\...leAction::__construct() has too many arguments starting with $args. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

18
        return (/** @scrutinizer ignore-call */ new static(...$args))->__invoke();

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. Please note the @ignore annotation hint above.

Loading history...
19
    }
20
}
21