Completed
Pull Request — 5.6 (#2830)
by Jeroen
14:14
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
     * @return NodeVersion
20
     */
21
    public function getNodeVersionFor(HasNodeInterface $hasNode)
22
    {
23
        return $this->findOneBy(
24
            [
25
                'refId' => $hasNode->getId(),
26
                'refEntityName' => ClassLookup::getClass($hasNode),
27
            ]
28
        );
29
    }
30
31
    /**
32
     * @param HasNodeInterface $hasNode         The object
33
     * @param NodeTranslation  $nodeTranslation The node translation
34
     * @param BaseUser         $owner           The user
35
     * @param NodeVersion      $origin          The nodeVersion this nodeVersion originated from
36
     * @param string           $type            (public|draft)
37
     * @param DateTime         $created         The date this node version is created
38
     *
39
     * @return NodeVersion
40
     */
41
    public function createNodeVersionFor(
42
        HasNodeInterface $hasNode,
43
        NodeTranslation $nodeTranslation,
44
        BaseUser $owner,
45
        NodeVersion $origin = null,
46
        $type = 'public',
47
        $created = null
48
    ) {
49
        $em = $this->getEntityManager();
50
51
        $nodeVersion = new NodeVersion();
52
        $nodeVersion->setNodeTranslation($nodeTranslation);
53
        $nodeVersion->setType($type);
54
        $nodeVersion->setOwner($owner);
55
        $nodeVersion->setRef($hasNode);
56
        $nodeVersion->setOrigin($origin);
0 ignored issues
show
It seems like $origin defined by parameter $origin on line 45 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...
57
58
        if (!\is_null($created)) {
59
            $nodeVersion->setCreated($created);
60
        }
61
62
        $em->persist($nodeVersion);
63
        $em->flush();
64
        $em->refresh($nodeVersion);
65
66
        return $nodeVersion;
67
    }
68
}
69