1
0
mirror of https://github.com/Intervention/image.git synced 2025-08-16 10:54:02 +02:00

Move ColorObjectDecoder & ImageObjectDecoder

Move ColorObjectDecoder & ImageObjectDecoder from drivers context
because they can operate without any specific drivers information
must not be specialized.
This commit is contained in:
Oliver Vogel
2024-05-25 10:34:15 +02:00
parent c7d90142a7
commit 27fd48170b
8 changed files with 40 additions and 96 deletions

View File

@@ -4,8 +4,24 @@ declare(strict_types=1);
namespace Intervention\Image\Decoders; namespace Intervention\Image\Decoders;
use Intervention\Image\Drivers\SpecializableDecoder; use Intervention\Image\Drivers\AbstractDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Interfaces\ColorInterface;
use Intervention\Image\Interfaces\ImageInterface;
class ColorObjectDecoder extends SpecializableDecoder class ColorObjectDecoder extends AbstractDecoder
{ {
/**
* {@inheritdoc}
*
* @see DecoderInterface::decode()
*/
public function decode(mixed $input): ImageInterface|ColorInterface
{
if (!is_a($input, ColorInterface::class)) {
throw new DecoderException('Unable to decode input');
}
return $input;
}
} }

View File

@@ -4,8 +4,24 @@ declare(strict_types=1);
namespace Intervention\Image\Decoders; namespace Intervention\Image\Decoders;
use Intervention\Image\Drivers\SpecializableDecoder; use Intervention\Image\Drivers\AbstractDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Interfaces\ImageInterface;
use Intervention\Image\Interfaces\ColorInterface;
class ImageObjectDecoder extends SpecializableDecoder class ImageObjectDecoder extends AbstractDecoder
{ {
/**
* {@inheritdoc}
*
* @see DecoderInterface::decode()
*/
public function decode(mixed $input): ImageInterface|ColorInterface
{
if (!is_a($input, ImageInterface::class)) {
throw new DecoderException('Unable to decode input');
}
return $input;
}
} }

View File

@@ -1,22 +0,0 @@
<?php
declare(strict_types=1);
namespace Intervention\Image\Drivers\Gd\Decoders;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Interfaces\ColorInterface;
use Intervention\Image\Interfaces\DecoderInterface;
use Intervention\Image\Interfaces\ImageInterface;
class ColorObjectDecoder extends AbstractDecoder implements DecoderInterface
{
public function decode(mixed $input): ImageInterface|ColorInterface
{
if (!is_a($input, ColorInterface::class)) {
throw new DecoderException('Unable to decode input');
}
return $input;
}
}

View File

@@ -1,22 +0,0 @@
<?php
declare(strict_types=1);
namespace Intervention\Image\Drivers\Gd\Decoders;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Interfaces\ColorInterface;
use Intervention\Image\Interfaces\DecoderInterface;
use Intervention\Image\Interfaces\ImageInterface;
class ImageObjectDecoder extends AbstractDecoder implements DecoderInterface
{
public function decode(mixed $input): ImageInterface|ColorInterface
{
if (!is_a($input, ImageInterface::class)) {
throw new DecoderException('Unable to decode input');
}
return $input;
}
}

View File

@@ -1,22 +0,0 @@
<?php
declare(strict_types=1);
namespace Intervention\Image\Drivers\Imagick\Decoders;
use Intervention\Image\Drivers\SpecializableDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Interfaces\ColorInterface;
use Intervention\Image\Interfaces\ImageInterface;
class ColorObjectDecoder extends SpecializableDecoder
{
public function decode(mixed $input): ImageInterface|ColorInterface
{
if (!is_a($input, ColorInterface::class)) {
throw new DecoderException('Unable to decode input');
}
return $input;
}
}

View File

@@ -1,22 +0,0 @@
<?php
declare(strict_types=1);
namespace Intervention\Image\Drivers\Imagick\Decoders;
use Intervention\Image\Drivers\SpecializableDecoder;
use Intervention\Image\Exceptions\DecoderException;
use Intervention\Image\Interfaces\ColorInterface;
use Intervention\Image\Interfaces\ImageInterface;
class ImageObjectDecoder extends SpecializableDecoder
{
public function decode(mixed $input): ImageInterface|ColorInterface
{
if (!is_a($input, ImageInterface::class)) {
throw new DecoderException('Unable to decode input');
}
return $input;
}
}

View File

@@ -6,12 +6,12 @@ namespace Intervention\Image\Tests\Unit\Drivers\Gd\Decoders;
use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension; use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Gd\Decoders\ImageObjectDecoder; use Intervention\Image\Decoders\ImageObjectDecoder;
use Intervention\Image\Image; use Intervention\Image\Image;
use Intervention\Image\Tests\GdTestCase; use Intervention\Image\Tests\GdTestCase;
#[RequiresPhpExtension('gd')] #[RequiresPhpExtension('gd')]
#[CoversClass(\Intervention\Image\Drivers\Gd\Decoders\ImageObjectDecoder::class)] #[CoversClass(\Intervention\Image\Decoders\ImageObjectDecoder::class)]
final class ImageObjectDecoderTest extends GdTestCase final class ImageObjectDecoderTest extends GdTestCase
{ {
public function testDecode(): void public function testDecode(): void

View File

@@ -6,12 +6,12 @@ namespace Intervention\Image\Tests\Unit\Drivers\Imagick\Decoders;
use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\RequiresPhpExtension; use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use Intervention\Image\Drivers\Imagick\Decoders\ImageObjectDecoder; use Intervention\Image\Decoders\ImageObjectDecoder;
use Intervention\Image\Image; use Intervention\Image\Image;
use Intervention\Image\Tests\ImagickTestCase; use Intervention\Image\Tests\ImagickTestCase;
#[RequiresPhpExtension('imagick')] #[RequiresPhpExtension('imagick')]
#[CoversClass(\Intervention\Image\Drivers\Imagick\Decoders\ImageObjectDecoder::class)] #[CoversClass(\Intervention\Image\Decoders\ImageObjectDecoder::class)]
final class ImageObjectDecoderTest extends ImagickTestCase final class ImageObjectDecoderTest extends ImagickTestCase
{ {
public function testDecode(): void public function testDecode(): void