ConsoleController   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Importance

Changes 5
Bugs 0 Features 0
Metric Value
eloc 15
c 5
b 0
f 0
dl 0
loc 53
rs 10
wmc 6

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A getImageResizerService() 0 3 1
A resizeImageAction() 0 17 3
A setImageResizerService() 0 4 1
1
<?php
2
3
namespace Rvdlee\ZfImageResizer\Controller;
4
5
use Exception;
6
use Rvdlee\ZfImageResizer\Exception\InvalidArgumentException;
7
use Rvdlee\ZfImageResizer\Model\Image;
8
use Rvdlee\ZfImageResizer\Service\ImageResizerService;
9
use Zend\Mvc\Controller\AbstractActionController;
10
11
class ConsoleController extends AbstractActionController
12
{
13
    /**
14
     * @var ImageResizerService
15
     */
16
    protected $imageResizerService;
17
18
    public function __construct(ImageResizerService $imageResizerService)
19
    {
20
        $this->setImageResizerService($imageResizerService);
21
    }
22
23
    /**
24
     * Console wrapper for service
25
     *
26
     * @throws Exception
27
     */
28
    public function resizeImageAction()
29
    {
30
        /** @var string $image */
31
        $image = $this->params()->fromRoute('image', null);
32
        if ( ! file_exists($image)) {
33
            throw new InvalidArgumentException('You need the --image|-i param to be an existing image.');
34
        }
35
36
        /** @var int $width */
37
        $width = (int) $this->params()->fromRoute('width', 100);
38
        /** @var int $height */
39
        $height = (int) $this->params()->fromRoute('height', 100);
40
41
        try {
42
            $this->getImageResizerService()->resizeImage($image, $width, $height);
43
        } catch (Exception $exception) {
44
            throw $exception;
45
        }
46
    }
47
48
    /**
49
     * @return ImageResizerService
50
     */
51
    public function getImageResizerService(): ImageResizerService
52
    {
53
        return $this->imageResizerService;
54
    }
55
56
    /**
57
     * @param ImageResizerService $imageResizerService
58
     * @return ConsoleController
59
     */
60
    public function setImageResizerService(ImageResizerService $imageResizerService): ConsoleController
61
    {
62
        $this->imageResizerService = $imageResizerService;
63
        return $this;
64
    }
65
}