Test Failed
Push — master ( dc29cf...122adf )
by Alex
02:40
created

MetadataProvider::attachReferencePolymorphic()   D

Complexity

Conditions 9
Paths 36

Size

Total Lines 41
Code Lines 33

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 90

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 41
ccs 0
cts 0
cp 0
rs 4.909
cc 9
eloc 33
nc 36
nop 9
crap 90

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
namespace AlgoWeb\PODataLaravel\Providers;
4
5
use AlgoWeb\PODataLaravel\Models\MetadataRelationHolder;
6
7
class MetadataProvider extends MetadataProviderOld
8
{
9
    protected $relationHolder;
10
11
    public function __construct($app)
12
    {
13
        parent::__construct($app);
14
        $this->relationHolder = new MetadataRelationHolder();
15
        self::$isBooted = false;
16
    }
17
18
    /**
19
     * @return MetadataRelationHolder
20 1
     */
21
    public function getRelationHolder()
22 1
    {
23
        return $this->relationHolder;
24
    }
25 1
26
    public function calculateRoundTripRelations()
27
    {
28 1
        $modelNames = $this->getCandidateModels();
29 1
30
        foreach ($modelNames as $name) {
31
            if (!$this->getRelationHolder()->hasClass($name)) {
32
                $model = new $name();
33
                $this->getRelationHolder()->addModel($model);
34
            }
35
        }
36
37
        return $this->getRelationHolder()->getRelations();
38
    }
39
}
40