irishdan /
ResponsiveImageBundle
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
| 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 | use Psr\Log\LoggerInterface; |
||
| 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
|
|||
| 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
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
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 | } |
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: