Passed
Push — develop ( 6efcd9...4e1ea1 )
by Daniel
05:51
created

AbstractFixture   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 18
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 18
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A persist() 0 9 3
1
<?php
2
3
namespace Silverback\ApiComponentBundle\DataFixtures;
4
5
use Doctrine\Common\DataFixtures\AbstractFixture as BaseAbstractFixture;
6
use Doctrine\Common\Persistence\ObjectManager;
7
use Silverback\ApiComponentBundle\Exception\InvalidEntityException;
8
use Symfony\Component\Validator\Validator\ValidatorInterface;
9
10
abstract class AbstractFixture extends BaseAbstractFixture
11
{
12
    protected $validator;
13
14
    public function __construct(ValidatorInterface $validator)
15
    {
16
        $this->validator = $validator;
17
    }
18
19
    protected function persist(ObjectManager $manager, object $entity, bool $skipValidation = false): void
20
    {
21
        if (!$skipValidation) {
22
            $errors = $this->validator->validate($entity);
23
            if (\count($errors)) {
24
                throw new InvalidEntityException($errors);
25
            }
26
        }
27
        $manager->persist($entity);
28
    }
29
}
30