PhpInterface::addMethod()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 8
dl 0
loc 3
ccs 1
cts 1
cp 1
crap 1
rs 10

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
3
declare(strict_types=1);
4
5
namespace WsdlToPhp\PhpGenerator\Component;
6
7
use WsdlToPhp\PhpGenerator\Element\PhpInterface as PhpInterfaceElement;
8
use WsdlToPhp\PhpGenerator\Element\PhpMethod as PhpMethodElement;
9
use WsdlToPhp\PhpGenerator\Element\PhpProperty as PhpPropertyElement;
10
11
class PhpInterface extends PhpClass
12
{
13 6
    public function __construct(string $name, bool $abstract = false, ?string $extends = null, array $interfaces = [])
14
    {
15 6
        $this->setMainElement(new PhpInterfaceElement($name, $abstract, $extends, $interfaces));
16 6
    }
17
18 6
    public function addMethodElement(PhpMethodElement $method): self
19
    {
20 6
        if ($method->getHasBody()) {
21 4
            $method->setHasBody(false);
22
        }
23
24 6
        parent::addMethodElement($method);
25
26
        return $this;
27 6
    }
28
29 6
    public function addMethod(string $name, array $parameters = [], ?string $returnType = null, string $access = PhpMethodElement::ACCESS_PUBLIC, bool $abstract = false, bool $static = false, bool $final = false, bool $hasBody = true): self
30
    {
31
        return $this->addMethodElement(new PhpMethodElement($name, $parameters, $returnType, $access, $abstract, $static, $final, false));
32 6
    }
33
34 6
    public function addPropertyElement(PhpPropertyElement $property): self
35
    {
36
        return $this;
37 6
    }
38
39 6
    public function addProperty(string $name, $value = null, string $access = PhpPropertyElement::ACCESS_PUBLIC, $type = null): self
40
    {
41
        return $this;
42
    }
43
}
44