ViewReferenceBuilder::buildViewReference()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 2
1
<?php
2
3
namespace Victoire\Bundle\ViewReferenceBundle\Builder;
4
5
use Doctrine\ORM\EntityManager;
6
use Victoire\Bundle\CoreBundle\Entity\View;
7
use Victoire\Bundle\CoreBundle\Entity\WebViewInterface;
8
use Victoire\Bundle\ViewReferenceBundle\Builder\Chain\ViewReferenceBuilderChain;
9
use Victoire\Bundle\ViewReferenceBundle\ViewReference\ViewReference;
10
11
/**
12
 * View Reference builder
13
 * ref: victoire_view_reference.builder.
14
 */
15
class ViewReferenceBuilder
16
{
17
    protected $viewReferenceBuilderChain;
18
19
    public function __construct(ViewReferenceBuilderChain $viewReferenceBuilderChain)
0 ignored issues
show
introduced by
Missing function doc comment
Loading history...
20
    {
21
        $this->viewReferenceBuilderChain = $viewReferenceBuilderChain;
22
    }
23
24
    /**
0 ignored issues
show
introduced by
Doc comment for parameter "$em" missing
Loading history...
25
     * compute the viewReference relative to a View + entity.
26
     *
27
     * @param WebViewInterface $view
28
     *
29
     * @return ViewReference
30
     */
31
    public function buildViewReference(View $view, EntityManager $em = null)
32
    {
33
        $viewReferenceBuilder = $this->viewReferenceBuilderChain->getViewReferenceBuilder($view);
34
        $viewReference = $viewReferenceBuilder->buildReference($view, $em);
0 ignored issues
show
Bug introduced by
It seems like $em defined by parameter $em on line 31 can be null; however, Victoire\Bundle\ViewRefe...ilder::buildReference() does not accept null, maybe add an additional type check?

It seems like you allow that null is being passed for a parameter, however the function which is called does not seem to accept null.

We recommend to add an additional type check (or disallow null for the parameter):

function notNullable(stdClass $x) { }

// Unsafe
function withoutCheck(stdClass $x = null) {
    notNullable($x);
}

// Safe - Alternative 1: Adding Additional Type-Check
function withCheck(stdClass $x = null) {
    if ($x instanceof stdClass) {
        notNullable($x);
    }
}

// Safe - Alternative 2: Changing Parameter
function withNonNullableParam(stdClass $x) {
    notNullable($x);
}
Loading history...
35
36
        return $viewReference;
37
    }
38
}
39