PhpClass::addMethod()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

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

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\PhpClass as PhpClassElement;
8
use WsdlToPhp\PhpGenerator\Element\PhpMethod as PhpMethodElement;
9
use WsdlToPhp\PhpGenerator\Element\PhpProperty as PhpPropertyElement;
10
11
class PhpClass extends AbstractComponent
12
{
13 12
    public function __construct(string $name, bool $abstract = false, ?string $extends = null, array $interfaces = [])
14
    {
15 12
        $this->setMainElement(new PhpClassElement($name, $abstract, $extends, $interfaces));
16 12
    }
17
18 16
    public function addMethodElement(PhpMethodElement $method): self
19
    {
20 16
        $this->mainElement->addChild($method);
21
22 16
        return $this;
23
    }
24
25 10
    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
26
    {
27 10
        return $this->addMethodElement(new PhpMethodElement($name, $parameters, $returnType, $access, $abstract, $static, $final, $hasBody));
28
    }
29
30 10
    public function addPropertyElement(PhpPropertyElement $property): self
31
    {
32 10
        $this->mainElement->addChild($property);
33
34 10
        return $this;
35
    }
36
37 10
    public function addProperty(string $name, $value = null, string $access = PhpPropertyElement::ACCESS_PUBLIC, $type = null): self
38
    {
39 10
        return $this->addPropertyElement(new PhpPropertyElement($name, $value, $access, $type));
40
    }
41
}
42