Code Duplication    Length = 55-55 lines in 2 locations

src/Gmagick/Magickly.php 1 location

@@ 18-72 (lines=55) @@
15
 *
16
 * @package GravityMedia\Magickly\Gmagick
17
 */
18
class Magickly implements MagicklyInterface
19
{
20
    /**
21
     * @var string
22
     */
23
    private static $version;
24
25
    /**
26
     * Create Magickly object.
27
     *
28
     * @throws RuntimeException
29
     */
30
    public function __construct()
31
    {
32
        if (!class_exists('Gmagick')) {
33
            throw new RuntimeException('Gmagick not installed');
34
        }
35
36
        $version = $this->getVersion();
37
        if (version_compare('1.3.0', $version) > 0) {
38
            throw new RuntimeException(sprintf('ImageMagick version 1.3.0 or higher is required, %s provided', $version));
39
        }
40
    }
41
42
    /**
43
     * Get version.
44
     *
45
     * @return string
46
     */
47
    public function getVersion()
48
    {
49
        if (null === self::$version) {
50
            $gmagick = new \Gmagick();
51
            $version = $gmagick->getVersion();
52
53
            list(self::$version) = sscanf($version['versionString'], 'GraphicsMagick %s %04d-%02d-%02d %s %s');
54
        }
55
56
        return self::$version;
57
    }
58
59
    /**
60
     * {@inheritdoc}
61
     */
62
    public function open($path)
63
    {
64
        try {
65
            $gmagick = new \Gmagick($path);
66
        } catch (\GmagickException $exception) {
67
            throw new RuntimeException(sprintf('Unable to open image %s', $path), 0, $exception);
68
        }
69
70
        return new Image($gmagick);
71
    }
72
}
73

src/Imagick/Magickly.php 1 location

@@ 18-72 (lines=55) @@
15
 *
16
 * @package GravityMedia\Magickly\Imagick
17
 */
18
class Magickly implements MagicklyInterface
19
{
20
    /**
21
     * @var string
22
     */
23
    private static $version;
24
25
    /**
26
     * Create Magickly object.
27
     *
28
     * @throws RuntimeException
29
     */
30
    public function __construct()
31
    {
32
        if (!class_exists('Imagick')) {
33
            throw new RuntimeException('Imagick not installed');
34
        }
35
36
        $version = $this->getVersion();
37
        if (version_compare('6.2.9', $version) > 0) {
38
            throw new RuntimeException(sprintf('ImageMagick version 6.2.9 or higher is required, %s provided', $version));
39
        }
40
    }
41
42
    /**
43
     * Get version.
44
     *
45
     * @return string
46
     */
47
    public function getVersion()
48
    {
49
        if (null === self::$version) {
50
            $imagick = new \Imagick();
51
            $version = $imagick->getVersion();
52
53
            list(self::$version) = sscanf($version['versionString'], 'ImageMagick %s %04d-%02d-%02d %s %s');
54
        }
55
56
        return self::$version;
57
    }
58
59
    /**
60
     * {@inheritdoc}
61
     */
62
    public function open($path)
63
    {
64
        try {
65
            $imagick = new \Imagick($path);
66
        } catch (\ImagickException $exception) {
67
            throw new RuntimeException(sprintf('Unable to open image %s', $path), 0, $exception);
68
        }
69
70
        return new Image($imagick);
71
    }
72
}
73