ImageSubscriber::onImageDeleted()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
1
<?php
2
/**
3
 * This file is part of the IrishDan\ResponsiveImageBundle package.
4
 *
5
 * (c) Daniel Byrne <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE file that was distributed with this source
8
 * code.
9
 */
10
11
namespace IrishDan\ResponsiveImageBundle\EventSubscriber;
12
13
14
use IrishDan\ResponsiveImageBundle\Event\ImageEvent;
15
use IrishDan\ResponsiveImageBundle\Event\ImageEvents;
16
use IrishDan\ResponsiveImageBundle\ImageProcessing\ImageManager;
17
18
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
19
20
/**
21
 * Class ImageSubscriber
22
 *
23
 * @package IrishDan\ResponsiveImageBundle\EventSubscriber
24
 */
25
class ImageSubscriber implements EventSubscriberInterface
26
{
27
    /**
28
     * @var ImageManager
29
     */
30
    private $imageManager;
31
32
    /**
33
     * ImageSubscriber constructor.
34
     *
35
     * @param ImageManager $imageManager
36
     */
37
    public function __construct(ImageManager $imageManager)
38
    {
39
        $this->imageManager = $imageManager;
40
    }
41
42
    /**
43
     * @return array
44
     */
45
    public static function getSubscribedEvents()
46
    {
47
        return [
48
            ImageEvents::IMAGE_CREATED => 'onImageCreated',
49
            ImageEvents::IMAGE_UPDATED => 'onImageUpdated',
50
            ImageEvents::IMAGE_DELETED => 'onImageDeleted',
51
        ];
52
    }
53
54
    /**
55
     * @param ImageEvent $event
56
     */
57
    public function onImageCreated(ImageEvent $event)
58
    {
59
        // Generate all styled images.
60
        $image = $event->getImage();
61
        $this->imageManager->createAllStyledImages($image);
0 ignored issues
show
Bug introduced by
It seems like $image defined by $event->getImage() on line 60 can be null; however, IrishDan\ResponsiveImage...createAllStyledImages() does not accept null, maybe add an additional type check?

Unless you are absolutely sure that the expression can never be null because of other conditions, we strongly recommend to add an additional type check to your code:

/** @return stdClass|null */
function mayReturnNull() { }

function doesNotAcceptNull(stdClass $x) { }

// With potential error.
function withoutCheck() {
    $x = mayReturnNull();
    doesNotAcceptNull($x); // Potential error here.
}

// Safe - Alternative 1
function withCheck1() {
    $x = mayReturnNull();
    if ( ! $x instanceof stdClass) {
        throw new \LogicException('$x must be defined.');
    }
    doesNotAcceptNull($x);
}

// Safe - Alternative 2
function withCheck2() {
    $x = mayReturnNull();
    if ($x instanceof stdClass) {
        doesNotAcceptNull($x);
    }
}
Loading history...
62
    }
63
64
    /**
65
     * @param ImageEvent $event
66
     */
67
    public function onImageUpdated(ImageEvent $event)
68
    {
69
        // Re-generate all styled images.
70
        // @TODO: Check for updated fields possible?? (crop focus, path or file)
71
        $image = $event->getImage();
72
        $this->imageManager->createAllStyledImages($image);
0 ignored issues
show
Bug introduced by
It seems like $image defined by $event->getImage() on line 71 can be null; however, IrishDan\ResponsiveImage...createAllStyledImages() does not accept null, maybe add an additional type check?

Unless you are absolutely sure that the expression can never be null because of other conditions, we strongly recommend to add an additional type check to your code:

/** @return stdClass|null */
function mayReturnNull() { }

function doesNotAcceptNull(stdClass $x) { }

// With potential error.
function withoutCheck() {
    $x = mayReturnNull();
    doesNotAcceptNull($x); // Potential error here.
}

// Safe - Alternative 1
function withCheck1() {
    $x = mayReturnNull();
    if ( ! $x instanceof stdClass) {
        throw new \LogicException('$x must be defined.');
    }
    doesNotAcceptNull($x);
}

// Safe - Alternative 2
function withCheck2() {
    $x = mayReturnNull();
    if ($x instanceof stdClass) {
        doesNotAcceptNull($x);
    }
}
Loading history...
73
    }
74
75
    /**
76
     * @param ImageEvent $event
77
     */
78
    public function onImageDeleted(ImageEvent $event)
79
    {
80
        // Delete all styled images
81
        $image = $event->getImage();
82
        $this->imageManager->deleteAllImages($image);
0 ignored issues
show
Bug introduced by
It seems like $image defined by $event->getImage() on line 81 can be null; however, IrishDan\ResponsiveImage...ager::deleteAllImages() does not accept null, maybe add an additional type check?

Unless you are absolutely sure that the expression can never be null because of other conditions, we strongly recommend to add an additional type check to your code:

/** @return stdClass|null */
function mayReturnNull() { }

function doesNotAcceptNull(stdClass $x) { }

// With potential error.
function withoutCheck() {
    $x = mayReturnNull();
    doesNotAcceptNull($x); // Potential error here.
}

// Safe - Alternative 1
function withCheck1() {
    $x = mayReturnNull();
    if ( ! $x instanceof stdClass) {
        throw new \LogicException('$x must be defined.');
    }
    doesNotAcceptNull($x);
}

// Safe - Alternative 2
function withCheck2() {
    $x = mayReturnNull();
    if ($x instanceof stdClass) {
        doesNotAcceptNull($x);
    }
}
Loading history...
83
    }
84
}