StrictPublicUrlListener   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 28
ccs 0
cts 12
cp 0
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A loadClassMetadata() 0 11 3
A __construct() 0 3 1
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