Completed
Push — master ( 1de9b7...830752 )
by Kristof
38:46 queued 24:09
created

NodeBundle/Repository/NodeVersionRepository.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace Kunstmaan\NodeBundle\Repository;
4
5
use DateTime;
6
use Doctrine\ORM\EntityRepository;
7
use Kunstmaan\AdminBundle\Entity\BaseUser;
8
use Kunstmaan\NodeBundle\Entity\HasNodeInterface;
9
use Kunstmaan\NodeBundle\Entity\NodeTranslation;
10
use Kunstmaan\NodeBundle\Entity\NodeVersion;
11
use Kunstmaan\UtilitiesBundle\Helper\ClassLookup;
12
13
/**
14
 * NodeRepository
15
 */
16
class NodeVersionRepository extends EntityRepository
17
{
18
    /**
19
     * @param HasNodeInterface $hasNode
20
     *
21
     * @return NodeVersion
22
     */
23
    public function getNodeVersionFor(HasNodeInterface $hasNode)
24
    {
25
        return $this->findOneBy(
26
            array(
27
                'refId' => $hasNode->getId(),
28
                'refEntityName' => ClassLookup::getClass($hasNode),
29
            )
30
        );
31
    }
32
33
    /**
34
     * @param HasNodeInterface $hasNode         The object
35
     * @param NodeTranslation  $nodeTranslation The node translation
36
     * @param BaseUser         $owner           The user
37
     * @param NodeVersion      $origin          The nodeVersion this nodeVersion originated from
38
     * @param string           $type            (public|draft)
39
     * @param DateTime         $created         The date this node version is created
40
     *
41
     * @return NodeVersion
42
     */
43
    public function createNodeVersionFor(
44
        HasNodeInterface $hasNode,
45
        NodeTranslation $nodeTranslation,
46
        BaseUser $owner,
47
        NodeVersion $origin = null,
48
        $type = 'public',
49
        $created = null
50
    ) {
51
        $em = $this->getEntityManager();
52
53
        $nodeVersion = new NodeVersion();
54
        $nodeVersion->setNodeTranslation($nodeTranslation);
55
        $nodeVersion->setType($type);
56
        $nodeVersion->setOwner($owner);
57
        $nodeVersion->setRef($hasNode);
58
        $nodeVersion->setOrigin($origin);
0 ignored issues
show
It seems like $origin defined by parameter $origin on line 47 can be null; however, Kunstmaan\NodeBundle\Ent...odeVersion::setOrigin() 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...
59
60
        if (!is_null($created)) {
61
            $nodeVersion->setCreated($created);
62
        }
63
64
        $em->persist($nodeVersion);
65
        $em->flush();
66
        $em->refresh($nodeVersion);
67
68
        return $nodeVersion;
69
    }
70
}
71