StrictPublicUrlListener::loadClassMetadata()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
cc 3
eloc 5
nc 3
nop 1
dl 0
loc 11
ccs 0
cts 8
cp 0
crap 12
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * @author Philip Bergman <[email protected]>
4
 * @copyright Zicht online <http://zicht.nl>
5
 */
6
namespace Zicht\Bundle\UrlBundle\Listener;
7
8
use Doctrine\Common\Persistence\Event\LoadClassMetadataEventArgs;
9
use Zicht\Bundle\UrlBundle\Entity\UrlAlias;
10
11
/**
12
 * Class StrictPublicUrlListener
13
 *
14
 * A class metadata listener that will set strict rulings on the UrlAlias entity.
15
 *
16
 * @package Zicht\Bundle\UrlBundle\Listener
17
 */
18
class StrictPublicUrlListener
19
{
20
    protected $isStrict = false;
21
22
    /**
23
     * StrictPublicUrlListener constructor
24
     *
25
     * @param bool $strict
26
     */
27
    public function __construct($strict = false)
28
    {
29
        $this->isStrict = $strict;
30
    }
31
32
    /**
33
     * @{inheritDoc}
34
     */
35
    public function loadClassMetadata(LoadClassMetadataEventArgs $args)
36
    {
37
        if (false === $this->isStrict) {
38
            return;
39
        }
40
41
        /** @var \Doctrine\ORM\Mapping\ClassMetadata $classMetadata */
42
        $classMetadata = $args->getClassMetadata();
43
44
        if (UrlAlias::class === $classMetadata->getName()) {
45
            $classMetadata->fieldMappings['public_url']['unique'] = true;
46
        }
47
    }
48
}
49