From 6b41c3b15c57ab537027c45fc81dad6d472a0193 Mon Sep 17 00:00:00 2001 From: nrg Date: Wed, 23 May 2018 11:03:52 +0200 Subject: [PATCH 01/30] added FilterSetCollection public service --- Config/Filter.php | 56 ++++++++ Config/FilterBuilder.php | 43 +++++++ Config/FilterBuilderInterface.php | 21 +++ Config/FilterInterface.php | 34 +++++ Config/FilterSet.php | 105 +++++++++++++++ Config/FilterSetBuilder.php | 59 +++++++++ Config/FilterSetBuilderInterface.php | 21 +++ Config/FilterSetCollection.php | 57 +++++++++ Config/FilterSetInterface.php | 54 ++++++++ Factory/Config/FilterFactory.php | 24 ++++ Factory/Config/FilterSetFactory.php | 24 ++++ Resources/config/imagine.xml | 27 ++++ Tests/Config/FilterBuilderTest.php | 67 ++++++++++ Tests/Config/FilterSetBuilderTest.php | 155 +++++++++++++++++++++++ Tests/Config/FilterSetCollectionTest.php | 63 +++++++++ Tests/Config/FilterSetTest.php | 44 +++++++ 16 files changed, 854 insertions(+) create mode 100644 Config/Filter.php create mode 100644 Config/FilterBuilder.php create mode 100644 Config/FilterBuilderInterface.php create mode 100644 Config/FilterInterface.php create mode 100644 Config/FilterSet.php create mode 100644 Config/FilterSetBuilder.php create mode 100644 Config/FilterSetBuilderInterface.php create mode 100644 Config/FilterSetCollection.php create mode 100644 Config/FilterSetInterface.php create mode 100644 Factory/Config/FilterFactory.php create mode 100644 Factory/Config/FilterSetFactory.php create mode 100644 Tests/Config/FilterBuilderTest.php create mode 100644 Tests/Config/FilterSetBuilderTest.php create mode 100644 Tests/Config/FilterSetCollectionTest.php create mode 100644 Tests/Config/FilterSetTest.php diff --git a/Config/Filter.php b/Config/Filter.php new file mode 100644 index 000000000..b46d117e7 --- /dev/null +++ b/Config/Filter.php @@ -0,0 +1,56 @@ +name; + } + + /** + * @param string $name + */ + public function setName(string $name): void + { + $this->name = $name; + } + + /** + * @return array + */ + public function getOptions(): array + { + return $this->options; + } + + /** + * @param array $options + */ + public function setOptions(array $options): void + { + $this->options = $options; + } +} diff --git a/Config/FilterBuilder.php b/Config/FilterBuilder.php new file mode 100644 index 000000000..b9fee2d7b --- /dev/null +++ b/Config/FilterBuilder.php @@ -0,0 +1,43 @@ +filterFactory = $filterFactory; + } + + /** + * @param string $filterName + * @param array $filterData + * @return FilterInterface + */ + public function build(string $filterName, array $filterData): FilterInterface + { + $filter = $this->filterFactory->create(); + $filter->setName($filterName); + $filter->setOptions($filterData); + + return $filter; + } +} diff --git a/Config/FilterBuilderInterface.php b/Config/FilterBuilderInterface.php new file mode 100644 index 000000000..503cdec5b --- /dev/null +++ b/Config/FilterBuilderInterface.php @@ -0,0 +1,21 @@ +name; + } + + /** + * @return string + */ + public function getDataLoader(): string + { + return $this->dataLoader; + } + + /** + * @return int + */ + public function getQuality(): int + { + return $this->quality; + } + + /** + * @return FilterInterface[] + */ + public function getFilters(): array + { + return $this->filters; + } + + /** + * @param string $name + */ + public function setName(string $name): void + { + $this->name = $name; + } + + /** + * @param string|null $dataLoader + */ + public function setDataLoader($dataLoader): void + { + $this->dataLoader = (string)$dataLoader; + } + + /** + * @param int $quality + */ + public function setQuality(int $quality): void + { + $this->quality = $quality; + } + + /** + * @param FilterInterface[] $filters + */ + public function setFilters(array $filters): void + { + foreach ($filters as $filter) { + if (!($filter instanceof FilterInterface)) { + throw new InvalidArgumentException('Unknown filter provided.'); + } + } + $this->filters = $filters; + } +} diff --git a/Config/FilterSetBuilder.php b/Config/FilterSetBuilder.php new file mode 100644 index 000000000..1c5d2ff04 --- /dev/null +++ b/Config/FilterSetBuilder.php @@ -0,0 +1,59 @@ +filterSetFactory = $filterSetFactory; + $this->filterBuilder = $filterBuilder; + } + + /** + * @param string $filterSetName + * @param array $filterSetData + * @return FilterSetInterface + */ + public function build(string $filterSetName, array $filterSetData): FilterSetInterface + { + $filterSet = $this->filterSetFactory->create(); + $filterSet->setName($filterSetName); + $filterSet->setDataLoader($filterSetData['data_loader']); + $filterSet->setQuality($filterSetData['quality']); + + if (!empty($filterSetData['filters'])) { + $filters = []; + foreach ($filterSetData['filters'] as $filterName => $filterData) { + $filters[] = $this->filterBuilder->build($filterName, $filterData); + } + $filterSet->setFilters($filters); + } + + return $filterSet; + } +} diff --git a/Config/FilterSetBuilderInterface.php b/Config/FilterSetBuilderInterface.php new file mode 100644 index 000000000..105e602f7 --- /dev/null +++ b/Config/FilterSetBuilderInterface.php @@ -0,0 +1,21 @@ +filterConfiguration = $filterConfiguration; + $this->filterSetBuilder = $filterSetBuilder; + } + + /** + * @return FilterSetInterface[] + */ + public function getFilterSets() + { + if (!empty($this->filterSets)) { + return $this->filterSets; + } + + foreach ($this->filterConfiguration->all() as $filterSetName => $filterSetData) { + $this->filterSets[] = $this->filterSetBuilder->build($filterSetName, $filterSetData); + } + + return $this->filterSets; + } +} diff --git a/Config/FilterSetInterface.php b/Config/FilterSetInterface.php new file mode 100644 index 000000000..34dcaeb4d --- /dev/null +++ b/Config/FilterSetInterface.php @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/Config/FilterBuilderTest.php b/Tests/Config/FilterBuilderTest.php new file mode 100644 index 000000000..5478f8388 --- /dev/null +++ b/Tests/Config/FilterBuilderTest.php @@ -0,0 +1,67 @@ +filterFactoryMock = $this->createMock(FilterFactory::class); + $this->model = new FilterBuilder($this->filterFactoryMock); + } + + public function testBuild() + { + $name = 'foo'; + $options = ['bar']; + + $filterMock = $this->createMock(FilterInterface::class); + + $this->filterFactoryMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($filterMock)); + + $filterMock->expects($this->once()) + ->method('setName') + ->with($name); + + $filterMock->expects($this->any()) + ->method('getName') + ->will($this->returnValue($name)); + + $filterMock->expects($this->once()) + ->method('setOptions') + ->with($options); + + $filterMock->expects($this->any()) + ->method('getOptions') + ->will($this->returnValue($options)); + + $filter = $this->model->build($name, $options); + $this->assertEquals($name, $filter->getName()); + $this->assertEquals($options, $filter->getOptions()); + } +} diff --git a/Tests/Config/FilterSetBuilderTest.php b/Tests/Config/FilterSetBuilderTest.php new file mode 100644 index 000000000..b40e077ef --- /dev/null +++ b/Tests/Config/FilterSetBuilderTest.php @@ -0,0 +1,155 @@ +filterSetFactoryMock = $this->createMock(FilterSetFactory::class); + $this->filterBuilderMock = $this->createMock(FilterBuilderInterface::class); + $this->model = new FilterSetBuilder($this->filterSetFactoryMock, $this->filterBuilderMock); + } + + public function testBuildWithEmptyFilters() + { + $name = 'foo'; + $dataLoader = 'bar'; + $quality = 42; + $filters = []; + + $filterSetMock = $this->createMock(FilterSetInterface::class); + + $this->filterSetFactoryMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($filterSetMock)); + + $filterSetMock->expects($this->once()) + ->method('setName') + ->with($name); + $filterSetMock->expects($this->once()) + ->method('getName') + ->will($this->returnValue($name)); + + $filterSetMock->expects($this->once()) + ->method('setDataLoader') + ->with($dataLoader); + $filterSetMock->expects($this->once()) + ->method('getDataLoader') + ->will($this->returnValue($dataLoader)); + + $filterSetMock->expects($this->once()) + ->method('setQuality') + ->with($quality); + $filterSetMock->expects($this->once()) + ->method('getQuality') + ->will($this->returnValue($quality)); + + $this->filterBuilderMock->expects($this->never()) + ->method('build'); + + $filterSet = $this->model->build($name, [ + 'data_loader' => $dataLoader, + 'quality' => $quality, + 'filters' => $filters, + ]); + $this->assertEquals($name, $filterSet->getName()); + $this->assertEquals($dataLoader, $filterSet->getDataLoader()); + $this->assertEquals($quality, $filterSet->getQuality()); + $this->assertEquals($filters, $filterSet->getFilters()); + } + + public function testBuildWithFilters() + { + $name = 'foo'; + $dataLoader = 'bar'; + $quality = 42; + + $filterCode = 'foo_filter'; + $filterData = ['foo_data']; + $filters = [ + $filterCode => $filterData, + ]; + + $filterMock = $this->createMock(FilterInterface::class); + $filterSetMock = $this->createMock(FilterSetInterface::class); + + $this->filterSetFactoryMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($filterSetMock)); + + $filterSetMock->expects($this->once()) + ->method('setName') + ->with($name); + $filterSetMock->expects($this->once()) + ->method('getName') + ->will($this->returnValue($name)); + + $filterSetMock->expects($this->once()) + ->method('setDataLoader') + ->with($dataLoader); + $filterSetMock->expects($this->once()) + ->method('getDataLoader') + ->will($this->returnValue($dataLoader)); + + $filterSetMock->expects($this->once()) + ->method('setQuality') + ->with($quality); + $filterSetMock->expects($this->once()) + ->method('getQuality') + ->will($this->returnValue($quality)); + + $filterSetMock->expects($this->once()) + ->method('setFilters') + ->with([$filterMock]); + $filterSetMock->expects($this->once()) + ->method('getFilters') + ->will($this->returnValue([$filterMock])); + + $this->filterBuilderMock->expects($this->once()) + ->method('build') + ->with($filterCode, $filterData) + ->will($this->returnValue($filterMock)); + + $filterSet = $this->model->build($name, [ + 'data_loader' => $dataLoader, + 'quality' => $quality, + 'filters' => $filters, + ]); + $this->assertEquals($name, $filterSet->getName()); + $this->assertEquals($dataLoader, $filterSet->getDataLoader()); + $this->assertEquals($quality, $filterSet->getQuality()); + $this->assertEquals([$filterMock], $filterSet->getFilters()); + } +} diff --git a/Tests/Config/FilterSetCollectionTest.php b/Tests/Config/FilterSetCollectionTest.php new file mode 100644 index 000000000..6ce7988f0 --- /dev/null +++ b/Tests/Config/FilterSetCollectionTest.php @@ -0,0 +1,63 @@ +filterConfigurationMock = $this->createMock(FilterConfiguration::class); + $this->filterSetBuilderMock = $this->createMock(FilterSetBuilderInterface::class); + + $this->model = new FilterSetCollection($this->filterConfigurationMock, $this->filterSetBuilderMock); + } + + public function testGetFilterSets() + { + $filterSetName = 'foo'; + $filterSetData = ['bar']; + + $filterSetMock = $this->createMock(FilterSetInterface::class); + + $this->filterConfigurationMock->expects($this->once()) + ->method('all') + ->will($this->returnValue([$filterSetName => $filterSetData])); + + $this->filterSetBuilderMock->expects($this->once()) + ->method('build') + ->with($filterSetName, $filterSetData) + ->will($this->returnValue($filterSetMock)); + + $this->assertEquals([$filterSetMock], $this->model->getFilterSets()); + $this->assertEquals([$filterSetMock], $this->model->getFilterSets()); + } +} diff --git a/Tests/Config/FilterSetTest.php b/Tests/Config/FilterSetTest.php new file mode 100644 index 000000000..0e859e433 --- /dev/null +++ b/Tests/Config/FilterSetTest.php @@ -0,0 +1,44 @@ +model = new FilterSet(); + } + + /** + * @expectedException InvalidArgumentException + * @expectedExceptionMessage Unknown filter provided. + */ + public function testSetFiltersWithInvalidFilterThrowsException() + { + $this->model->setFilters(['not_a_filter']); + } + + public function testSetFiltersWithValidFilterSuccess() + { + $filterMock = $this->createMock(FilterInterface::class); + $this->model->setFilters([$filterMock]); + } +} From 11c0c127874db292cb6aa6f945fb3ef7d5b2afc3 Mon Sep 17 00:00:00 2001 From: nrg Date: Wed, 23 May 2018 11:14:36 +0200 Subject: [PATCH 02/30] fixed static tests --- Config/Filter.php | 3 ++- Config/FilterBuilder.php | 6 ++++-- Config/FilterBuilderInterface.php | 6 ++++-- Config/FilterInterface.php | 3 ++- Config/FilterSet.php | 5 +++-- Config/FilterSetBuilder.php | 8 +++++--- Config/FilterSetBuilderInterface.php | 6 ++++-- Config/FilterSetCollection.php | 5 +++-- Config/FilterSetInterface.php | 3 ++- Factory/Config/FilterFactory.php | 3 ++- Factory/Config/FilterSetFactory.php | 3 ++- Tests/Config/FilterBuilderTest.php | 10 +++++++--- Tests/Config/FilterSetBuilderTest.php | 22 +++++++++++++--------- Tests/Config/FilterSetCollectionTest.php | 10 +++++++--- Tests/Config/FilterSetTest.php | 14 ++++++++------ 15 files changed, 68 insertions(+), 39 deletions(-) diff --git a/Config/Filter.php b/Config/Filter.php index b46d117e7..bb3a0ba03 100644 --- a/Config/Filter.php +++ b/Config/Filter.php @@ -1,5 +1,6 @@ dataLoader = (string)$dataLoader; + $this->dataLoader = (string) $dataLoader; } /** diff --git a/Config/FilterSetBuilder.php b/Config/FilterSetBuilder.php index 1c5d2ff04..1a1452c72 100644 --- a/Config/FilterSetBuilder.php +++ b/Config/FilterSetBuilder.php @@ -1,5 +1,6 @@ will($this->returnValue($options)); $filter = $this->model->build($name, $options); - $this->assertEquals($name, $filter->getName()); - $this->assertEquals($options, $filter->getOptions()); + $this->assertSame($name, $filter->getName()); + $this->assertSame($options, $filter->getOptions()); } } diff --git a/Tests/Config/FilterSetBuilderTest.php b/Tests/Config/FilterSetBuilderTest.php index b40e077ef..42b7c6b1b 100644 --- a/Tests/Config/FilterSetBuilderTest.php +++ b/Tests/Config/FilterSetBuilderTest.php @@ -1,5 +1,6 @@ $quality, 'filters' => $filters, ]); - $this->assertEquals($name, $filterSet->getName()); - $this->assertEquals($dataLoader, $filterSet->getDataLoader()); - $this->assertEquals($quality, $filterSet->getQuality()); - $this->assertEquals($filters, $filterSet->getFilters()); + $this->assertSame($name, $filterSet->getName()); + $this->assertSame($dataLoader, $filterSet->getDataLoader()); + $this->assertSame($quality, $filterSet->getQuality()); + $this->assertSame($filters, $filterSet->getFilters()); } public function testBuildWithFilters() @@ -147,9 +151,9 @@ public function testBuildWithFilters() 'quality' => $quality, 'filters' => $filters, ]); - $this->assertEquals($name, $filterSet->getName()); - $this->assertEquals($dataLoader, $filterSet->getDataLoader()); - $this->assertEquals($quality, $filterSet->getQuality()); - $this->assertEquals([$filterMock], $filterSet->getFilters()); + $this->assertSame($name, $filterSet->getName()); + $this->assertSame($dataLoader, $filterSet->getDataLoader()); + $this->assertSame($quality, $filterSet->getQuality()); + $this->assertSame([$filterMock], $filterSet->getFilters()); } } diff --git a/Tests/Config/FilterSetCollectionTest.php b/Tests/Config/FilterSetCollectionTest.php index 6ce7988f0..93524f01b 100644 --- a/Tests/Config/FilterSetCollectionTest.php +++ b/Tests/Config/FilterSetCollectionTest.php @@ -1,5 +1,6 @@ with($filterSetName, $filterSetData) ->will($this->returnValue($filterSetMock)); - $this->assertEquals([$filterSetMock], $this->model->getFilterSets()); - $this->assertEquals([$filterSetMock], $this->model->getFilterSets()); + $this->assertSame([$filterSetMock], $this->model->getFilterSets()); + $this->assertSame([$filterSetMock], $this->model->getFilterSets()); } } diff --git a/Tests/Config/FilterSetTest.php b/Tests/Config/FilterSetTest.php index 0e859e433..e4fc25ee8 100644 --- a/Tests/Config/FilterSetTest.php +++ b/Tests/Config/FilterSetTest.php @@ -1,5 +1,6 @@ model = new FilterSet(); } - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage Unknown filter provided. - */ public function testSetFiltersWithInvalidFilterThrowsException() { + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('Unknown filter provided.'); + $this->model->setFilters(['not_a_filter']); } From 6a8cff33a6a5c706ef38d3361f1a55abd13311db Mon Sep 17 00:00:00 2001 From: nrg Date: Thu, 24 May 2018 11:07:02 +0200 Subject: [PATCH 03/30] removed setters from Filters and FilterSets --- Config/Filter.php | 22 +++----- Config/FilterBuilder.php | 45 --------------- Config/FilterBuilderInterface.php | 23 -------- Config/FilterInterface.php | 10 ---- Config/FilterSet.php | 40 +++++--------- Config/FilterSetBuilder.php | 30 +++++----- Config/FilterSetInterface.php | 20 ------- Factory/Config/FilterFactory.php | 6 +- Factory/Config/FilterSetFactory.php | 8 ++- Tests/Config/FilterBuilderTest.php | 71 ------------------------ Tests/Config/FilterSetBuilderTest.php | 79 ++++----------------------- Tests/Config/FilterSetTest.php | 22 ++++---- 12 files changed, 70 insertions(+), 306 deletions(-) delete mode 100644 Config/FilterBuilder.php delete mode 100644 Config/FilterBuilderInterface.php delete mode 100644 Tests/Config/FilterBuilderTest.php diff --git a/Config/Filter.php b/Config/Filter.php index bb3a0ba03..2fe0f5cca 100644 --- a/Config/Filter.php +++ b/Config/Filter.php @@ -24,19 +24,21 @@ final class Filter implements FilterInterface private $options = []; /** - * @return string + * @param string $name + * @param array $options */ - public function getName(): string + public function __construct(string $name, array $options) { - return $this->name; + $this->name = $name; + $this->options = $options; } /** - * @param string $name + * @return string */ - public function setName(string $name): void + public function getName(): string { - $this->name = $name; + return $this->name; } /** @@ -46,12 +48,4 @@ public function getOptions(): array { return $this->options; } - - /** - * @param array $options - */ - public function setOptions(array $options): void - { - $this->options = $options; - } } diff --git a/Config/FilterBuilder.php b/Config/FilterBuilder.php deleted file mode 100644 index af9636a06..000000000 --- a/Config/FilterBuilder.php +++ /dev/null @@ -1,45 +0,0 @@ -filterFactory = $filterFactory; - } - - /** - * @param string $filterName - * @param array $filterData - * - * @return FilterInterface - */ - public function build(string $filterName, array $filterData): FilterInterface - { - $filter = $this->filterFactory->create(); - $filter->setName($filterName); - $filter->setOptions($filterData); - - return $filter; - } -} diff --git a/Config/FilterBuilderInterface.php b/Config/FilterBuilderInterface.php deleted file mode 100644 index 2e8f4a372..000000000 --- a/Config/FilterBuilderInterface.php +++ /dev/null @@ -1,23 +0,0 @@ -name = $name; + $this->dataLoader = $dataLoader; + $this->quality = $quality; + $this->setFilters($filters); + } + /** * @return string */ @@ -67,34 +81,10 @@ public function getFilters(): array return $this->filters; } - /** - * @param string $name - */ - public function setName(string $name): void - { - $this->name = $name; - } - - /** - * @param string|null $dataLoader - */ - public function setDataLoader($dataLoader): void - { - $this->dataLoader = (string) $dataLoader; - } - - /** - * @param int $quality - */ - public function setQuality(int $quality): void - { - $this->quality = $quality; - } - /** * @param FilterInterface[] $filters */ - public function setFilters(array $filters): void + private function setFilters(array $filters): void { foreach ($filters as $filter) { if (!($filter instanceof FilterInterface)) { diff --git a/Config/FilterSetBuilder.php b/Config/FilterSetBuilder.php index 1a1452c72..d165d49da 100644 --- a/Config/FilterSetBuilder.php +++ b/Config/FilterSetBuilder.php @@ -11,6 +11,7 @@ namespace Liip\ImagineBundle\Config; +use Liip\ImagineBundle\Factory\Config\FilterFactory; use Liip\ImagineBundle\Factory\Config\FilterSetFactory; final class FilterSetBuilder implements FilterSetBuilderInterface @@ -21,18 +22,18 @@ final class FilterSetBuilder implements FilterSetBuilderInterface private $filterSetFactory; /** - * @var FilterBuilderInterface + * @var FilterFactory */ - private $filterBuilder; + private $filterFactory; /** - * @param FilterSetFactory $filterSetFactory - * @param FilterBuilderInterface $filterBuilder + * @param FilterSetFactory $filterSetFactory + * @param FilterFactory $filterFactory */ - public function __construct(FilterSetFactory $filterSetFactory, FilterBuilderInterface $filterBuilder) + public function __construct(FilterSetFactory $filterSetFactory, FilterFactory $filterFactory) { $this->filterSetFactory = $filterSetFactory; - $this->filterBuilder = $filterBuilder; + $this->filterFactory = $filterFactory; } /** @@ -43,19 +44,18 @@ public function __construct(FilterSetFactory $filterSetFactory, FilterBuilderInt */ public function build(string $filterSetName, array $filterSetData): FilterSetInterface { - $filterSet = $this->filterSetFactory->create(); - $filterSet->setName($filterSetName); - $filterSet->setDataLoader($filterSetData['data_loader']); - $filterSet->setQuality($filterSetData['quality']); - + $filters = []; if (!empty($filterSetData['filters'])) { - $filters = []; foreach ($filterSetData['filters'] as $filterName => $filterData) { - $filters[] = $this->filterBuilder->build($filterName, $filterData); + $filters[] = $this->filterFactory->create($filterName, $filterData); } - $filterSet->setFilters($filters); } - return $filterSet; + return $this->filterSetFactory->create( + $filterSetName, + $filterSetData['data_loader'], + $filterSetData['quality'], + $filters + ); } } diff --git a/Config/FilterSetInterface.php b/Config/FilterSetInterface.php index fb0ae3c85..027cb49a1 100644 --- a/Config/FilterSetInterface.php +++ b/Config/FilterSetInterface.php @@ -32,24 +32,4 @@ public function getQuality(): int; * @return FilterInterface[] */ public function getFilters(): array; - - /** - * @param string $name - */ - public function setName(string $name): void; - - /** - * @param string $dataLoader - */ - public function setDataLoader($dataLoader): void; - - /** - * @param int $quality - */ - public function setQuality(int $quality): void; - - /** - * @param array $filters - */ - public function setFilters(array $filters): void; } diff --git a/Factory/Config/FilterFactory.php b/Factory/Config/FilterFactory.php index a974048cd..c2b54a75b 100644 --- a/Factory/Config/FilterFactory.php +++ b/Factory/Config/FilterFactory.php @@ -16,10 +16,12 @@ class FilterFactory { /** + * @param string $name + * @param array $options * @return Filter */ - public function create() + public function create(string $name, array $options) { - return new Filter(); + return new Filter($name, $options); } } diff --git a/Factory/Config/FilterSetFactory.php b/Factory/Config/FilterSetFactory.php index f0c2a3b49..4f4ead813 100644 --- a/Factory/Config/FilterSetFactory.php +++ b/Factory/Config/FilterSetFactory.php @@ -16,10 +16,14 @@ class FilterSetFactory { /** + * @param string $name + * @param string $dataLoader + * @param int $quality + * @param array $filters * @return FilterSet */ - public function create() + public function create(string $name, string $dataLoader, int $quality, array $filters) { - return new FilterSet(); + return new FilterSet($name, $dataLoader, $quality, $filters); } } diff --git a/Tests/Config/FilterBuilderTest.php b/Tests/Config/FilterBuilderTest.php deleted file mode 100644 index 2ab417640..000000000 --- a/Tests/Config/FilterBuilderTest.php +++ /dev/null @@ -1,71 +0,0 @@ -filterFactoryMock = $this->createMock(FilterFactory::class); - $this->model = new FilterBuilder($this->filterFactoryMock); - } - - public function testBuild() - { - $name = 'foo'; - $options = ['bar']; - - $filterMock = $this->createMock(FilterInterface::class); - - $this->filterFactoryMock->expects($this->once()) - ->method('create') - ->will($this->returnValue($filterMock)); - - $filterMock->expects($this->once()) - ->method('setName') - ->with($name); - - $filterMock->expects($this->any()) - ->method('getName') - ->will($this->returnValue($name)); - - $filterMock->expects($this->once()) - ->method('setOptions') - ->with($options); - - $filterMock->expects($this->any()) - ->method('getOptions') - ->will($this->returnValue($options)); - - $filter = $this->model->build($name, $options); - $this->assertSame($name, $filter->getName()); - $this->assertSame($options, $filter->getOptions()); - } -} diff --git a/Tests/Config/FilterSetBuilderTest.php b/Tests/Config/FilterSetBuilderTest.php index 42b7c6b1b..4eaad9f0e 100644 --- a/Tests/Config/FilterSetBuilderTest.php +++ b/Tests/Config/FilterSetBuilderTest.php @@ -11,11 +11,10 @@ namespace Liip\ImagineBundle\Tests\Config; -use Liip\ImagineBundle\Config\FilterBuilder; -use Liip\ImagineBundle\Config\FilterBuilderInterface; use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Config\FilterSetBuilder; use Liip\ImagineBundle\Config\FilterSetInterface; +use Liip\ImagineBundle\Factory\Config\FilterFactory; use Liip\ImagineBundle\Factory\Config\FilterSetFactory; use PHPUnit\Framework\TestCase; @@ -30,9 +29,9 @@ class FilterSetBuilderTest extends TestCase private $filterSetFactoryMock; /** - * @var FilterBuilder|\PHPUnit_Framework_MockObject_MockObject + * @var FilterFactory|\PHPUnit_Framework_MockObject_MockObject */ - private $filterBuilderMock; + private $filterFactoryMock; /** * @var FilterSetBuilder @@ -42,8 +41,8 @@ class FilterSetBuilderTest extends TestCase protected function setUp() { $this->filterSetFactoryMock = $this->createMock(FilterSetFactory::class); - $this->filterBuilderMock = $this->createMock(FilterBuilderInterface::class); - $this->model = new FilterSetBuilder($this->filterSetFactoryMock, $this->filterBuilderMock); + $this->filterFactoryMock = $this->createMock(FilterFactory::class); + $this->model = new FilterSetBuilder($this->filterSetFactoryMock, $this->filterFactoryMock); } public function testBuildWithEmptyFilters() @@ -57,41 +56,18 @@ public function testBuildWithEmptyFilters() $this->filterSetFactoryMock->expects($this->once()) ->method('create') + ->with($name, $dataLoader, $quality, $filters) ->will($this->returnValue($filterSetMock)); - $filterSetMock->expects($this->once()) - ->method('setName') - ->with($name); - $filterSetMock->expects($this->once()) - ->method('getName') - ->will($this->returnValue($name)); - - $filterSetMock->expects($this->once()) - ->method('setDataLoader') - ->with($dataLoader); - $filterSetMock->expects($this->once()) - ->method('getDataLoader') - ->will($this->returnValue($dataLoader)); - - $filterSetMock->expects($this->once()) - ->method('setQuality') - ->with($quality); - $filterSetMock->expects($this->once()) - ->method('getQuality') - ->will($this->returnValue($quality)); - - $this->filterBuilderMock->expects($this->never()) - ->method('build'); + $this->filterFactoryMock->expects($this->never()) + ->method('create'); $filterSet = $this->model->build($name, [ 'data_loader' => $dataLoader, 'quality' => $quality, 'filters' => $filters, ]); - $this->assertSame($name, $filterSet->getName()); - $this->assertSame($dataLoader, $filterSet->getDataLoader()); - $this->assertSame($quality, $filterSet->getQuality()); - $this->assertSame($filters, $filterSet->getFilters()); + $this->assertSame($filterSetMock, $filterSet); } public function testBuildWithFilters() @@ -113,36 +89,8 @@ public function testBuildWithFilters() ->method('create') ->will($this->returnValue($filterSetMock)); - $filterSetMock->expects($this->once()) - ->method('setName') - ->with($name); - $filterSetMock->expects($this->once()) - ->method('getName') - ->will($this->returnValue($name)); - - $filterSetMock->expects($this->once()) - ->method('setDataLoader') - ->with($dataLoader); - $filterSetMock->expects($this->once()) - ->method('getDataLoader') - ->will($this->returnValue($dataLoader)); - - $filterSetMock->expects($this->once()) - ->method('setQuality') - ->with($quality); - $filterSetMock->expects($this->once()) - ->method('getQuality') - ->will($this->returnValue($quality)); - - $filterSetMock->expects($this->once()) - ->method('setFilters') - ->with([$filterMock]); - $filterSetMock->expects($this->once()) - ->method('getFilters') - ->will($this->returnValue([$filterMock])); - - $this->filterBuilderMock->expects($this->once()) - ->method('build') + $this->filterFactoryMock->expects($this->once()) + ->method('create') ->with($filterCode, $filterData) ->will($this->returnValue($filterMock)); @@ -151,9 +99,6 @@ public function testBuildWithFilters() 'quality' => $quality, 'filters' => $filters, ]); - $this->assertSame($name, $filterSet->getName()); - $this->assertSame($dataLoader, $filterSet->getDataLoader()); - $this->assertSame($quality, $filterSet->getQuality()); - $this->assertSame([$filterMock], $filterSet->getFilters()); + $this->assertSame($filterSetMock, $filterSet); } } diff --git a/Tests/Config/FilterSetTest.php b/Tests/Config/FilterSetTest.php index e4fc25ee8..33c7d9d29 100644 --- a/Tests/Config/FilterSetTest.php +++ b/Tests/Config/FilterSetTest.php @@ -20,27 +20,25 @@ */ class FilterSetTest extends TestCase { - /** - * @var FilterSet - */ - private $model; - - protected function setUp() - { - $this->model = new FilterSet(); - } - public function testSetFiltersWithInvalidFilterThrowsException() { $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('Unknown filter provided.'); - $this->model->setFilters(['not_a_filter']); + $this->buildFilterSet(['not_a_filter']); } public function testSetFiltersWithValidFilterSuccess() { $filterMock = $this->createMock(FilterInterface::class); - $this->model->setFilters([$filterMock]); + $this->buildFilterSet([$filterMock]); + } + + /** + * @param array $filters + */ + private function buildFilterSet(array $filters) + { + new FilterSet('filter_name', 'data_loader', 42, $filters); } } From add533f594b189edb67ccee86f82f0d2555b26de Mon Sep 17 00:00:00 2001 From: nrg Date: Thu, 24 May 2018 11:07:48 +0200 Subject: [PATCH 04/30] fixed static tests --- Config/Filter.php | 2 +- Config/FilterSet.php | 6 +++--- Config/FilterSetBuilder.php | 2 +- Factory/Config/FilterFactory.php | 3 ++- Factory/Config/FilterSetFactory.php | 5 +++-- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Config/Filter.php b/Config/Filter.php index 2fe0f5cca..0adc31552 100644 --- a/Config/Filter.php +++ b/Config/Filter.php @@ -25,7 +25,7 @@ final class Filter implements FilterInterface /** * @param string $name - * @param array $options + * @param array $options */ public function __construct(string $name, array $options) { diff --git a/Config/FilterSet.php b/Config/FilterSet.php index cf67d96ba..3d10625a1 100644 --- a/Config/FilterSet.php +++ b/Config/FilterSet.php @@ -36,9 +36,9 @@ final class FilterSet implements FilterSetInterface private $filters = []; /** - * @param string $name - * @param string $dataLoader - * @param int $quality + * @param string $name + * @param string $dataLoader + * @param int $quality * @param FilterInterface[] $filters */ public function __construct(string $name, string $dataLoader, int $quality, array $filters) diff --git a/Config/FilterSetBuilder.php b/Config/FilterSetBuilder.php index d165d49da..01d5843cd 100644 --- a/Config/FilterSetBuilder.php +++ b/Config/FilterSetBuilder.php @@ -28,7 +28,7 @@ final class FilterSetBuilder implements FilterSetBuilderInterface /** * @param FilterSetFactory $filterSetFactory - * @param FilterFactory $filterFactory + * @param FilterFactory $filterFactory */ public function __construct(FilterSetFactory $filterSetFactory, FilterFactory $filterFactory) { diff --git a/Factory/Config/FilterFactory.php b/Factory/Config/FilterFactory.php index c2b54a75b..1668017d1 100644 --- a/Factory/Config/FilterFactory.php +++ b/Factory/Config/FilterFactory.php @@ -17,7 +17,8 @@ class FilterFactory { /** * @param string $name - * @param array $options + * @param array $options + * * @return Filter */ public function create(string $name, array $options) diff --git a/Factory/Config/FilterSetFactory.php b/Factory/Config/FilterSetFactory.php index 4f4ead813..a6dd6f1b5 100644 --- a/Factory/Config/FilterSetFactory.php +++ b/Factory/Config/FilterSetFactory.php @@ -18,8 +18,9 @@ class FilterSetFactory /** * @param string $name * @param string $dataLoader - * @param int $quality - * @param array $filters + * @param int $quality + * @param array $filters + * * @return FilterSet */ public function create(string $name, string $dataLoader, int $quality, array $filters) From 95db82b8d8402eaa42f1bd77ae8a0073a744190b Mon Sep 17 00:00:00 2001 From: nrg Date: Tue, 29 May 2018 17:04:25 +0200 Subject: [PATCH 05/30] added filter-specific objects --- Config/Filter/Type/Crop.php | 68 ++++++++++++ Config/Filter/Type/Strip.php | 38 +++++++ Config/Filter/Type/Thumbnail.php | 103 ++++++++++++++++++ Config/FilterFactoryCollection.php | 56 ++++++++++ Config/FilterFactoryCollectionInterface.php | 28 +++++ Config/FilterInterface.php | 5 - Config/FilterSet.php | 14 +-- Config/FilterSetBuilder.php | 16 +-- Config/FilterSetInterface.php | 8 +- Exception/Config/Filter/NotFoundException.php | 17 +++ Factory/Config/Filter/CropFactory.php | 38 +++++++ Factory/Config/Filter/StripFactory.php | 38 +++++++ Factory/Config/Filter/ThumbnailFactory.php | 43 ++++++++ ...Factory.php => FilterFactoryInterface.php} | 17 +-- Factory/Config/FilterSetFactory.php | 8 +- Resources/config/imagine.xml | 24 ++-- Tests/Config/FilterSetBuilderTest.php | 30 +++-- 17 files changed, 495 insertions(+), 56 deletions(-) create mode 100644 Config/Filter/Type/Crop.php create mode 100644 Config/Filter/Type/Strip.php create mode 100644 Config/Filter/Type/Thumbnail.php create mode 100644 Config/FilterFactoryCollection.php create mode 100644 Config/FilterFactoryCollectionInterface.php create mode 100644 Exception/Config/Filter/NotFoundException.php create mode 100644 Factory/Config/Filter/CropFactory.php create mode 100644 Factory/Config/Filter/StripFactory.php create mode 100644 Factory/Config/Filter/ThumbnailFactory.php rename Factory/Config/{FilterFactory.php => FilterFactoryInterface.php} (60%) diff --git a/Config/Filter/Type/Crop.php b/Config/Filter/Type/Crop.php new file mode 100644 index 000000000..694a1b3e4 --- /dev/null +++ b/Config/Filter/Type/Crop.php @@ -0,0 +1,68 @@ +name = $name; + $this->start = $start; + $this->size = $size; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return array + */ + public function getStart(): array + { + return $this->start; + } + + /** + * @return array + */ + public function getSize(): array + { + return $this->size; + } +} diff --git a/Config/Filter/Type/Strip.php b/Config/Filter/Type/Strip.php new file mode 100644 index 000000000..cc26fe43f --- /dev/null +++ b/Config/Filter/Type/Strip.php @@ -0,0 +1,38 @@ +name = $name; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } +} diff --git a/Config/Filter/Type/Thumbnail.php b/Config/Filter/Type/Thumbnail.php new file mode 100644 index 000000000..80c554620 --- /dev/null +++ b/Config/Filter/Type/Thumbnail.php @@ -0,0 +1,103 @@ +name = $name; + $this->size = $size; + $this->mode = $mode; + $this->allowUpscale = $allowUpscale; + $this->filter = $filter; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return array + */ + public function getSize() + { + return $this->size; + } + + /** + * @return string|null + */ + public function getMode() + { + return $this->mode; + } + + /** + * @return bool|null + */ + public function isAllowUpscale() + { + return $this->allowUpscale; + } + + /** + * @return string|null + */ + public function getFilter() + { + return $this->filter; + } +} diff --git a/Config/FilterFactoryCollection.php b/Config/FilterFactoryCollection.php new file mode 100644 index 000000000..22c0b1ed3 --- /dev/null +++ b/Config/FilterFactoryCollection.php @@ -0,0 +1,56 @@ +filterFactories = $filterFactories; + } + + /** + * @param string $name + * @return FilterFactoryInterface + * @throws NotFoundException + */ + public function getFilterFactoryByName(string $name): FilterFactoryInterface + { + foreach ($this->filterFactories as $filterFactory) { + if ($filterFactory->getName() === $name) { + return $filterFactory; + } + } + + throw new NotFoundException(sprintf("Filter factory with name '%s' was not found.", $name)); + } + + /** + * @return FilterFactoryInterface[] + */ + public function getAll() + { + return $this->filterFactories; + } +} diff --git a/Config/FilterFactoryCollectionInterface.php b/Config/FilterFactoryCollectionInterface.php new file mode 100644 index 000000000..3752ae81e --- /dev/null +++ b/Config/FilterFactoryCollectionInterface.php @@ -0,0 +1,28 @@ +name = $name; $this->dataLoader = $dataLoader; @@ -58,17 +58,17 @@ public function getName(): string } /** - * @return string + * @return string|null */ - public function getDataLoader(): string + public function getDataLoader() { return $this->dataLoader; } /** - * @return int + * @return int|null */ - public function getQuality(): int + public function getQuality() { return $this->quality; } diff --git a/Config/FilterSetBuilder.php b/Config/FilterSetBuilder.php index 01d5843cd..0da639b18 100644 --- a/Config/FilterSetBuilder.php +++ b/Config/FilterSetBuilder.php @@ -11,7 +11,6 @@ namespace Liip\ImagineBundle\Config; -use Liip\ImagineBundle\Factory\Config\FilterFactory; use Liip\ImagineBundle\Factory\Config\FilterSetFactory; final class FilterSetBuilder implements FilterSetBuilderInterface @@ -22,23 +21,23 @@ final class FilterSetBuilder implements FilterSetBuilderInterface private $filterSetFactory; /** - * @var FilterFactory + * @var FilterFactoryCollectionInterface */ - private $filterFactory; + private $filterFactoryCollection; /** * @param FilterSetFactory $filterSetFactory - * @param FilterFactory $filterFactory + * @param FilterFactoryCollection $filterFactoryCollection */ - public function __construct(FilterSetFactory $filterSetFactory, FilterFactory $filterFactory) + public function __construct(FilterSetFactory $filterSetFactory, FilterFactoryCollectionInterface $filterFactoryCollection) { $this->filterSetFactory = $filterSetFactory; - $this->filterFactory = $filterFactory; + $this->filterFactoryCollection = $filterFactoryCollection; } /** * @param string $filterSetName - * @param array $filterSetData + * @param array $filterSetData * * @return FilterSetInterface */ @@ -47,7 +46,8 @@ public function build(string $filterSetName, array $filterSetData): FilterSetInt $filters = []; if (!empty($filterSetData['filters'])) { foreach ($filterSetData['filters'] as $filterName => $filterData) { - $filters[] = $this->filterFactory->create($filterName, $filterData); + $filterFactory = $this->filterFactoryCollection->getFilterFactoryByName($filterName); + $filters[] = $filterFactory->create($filterData); } } diff --git a/Config/FilterSetInterface.php b/Config/FilterSetInterface.php index 027cb49a1..04d6dd51a 100644 --- a/Config/FilterSetInterface.php +++ b/Config/FilterSetInterface.php @@ -19,14 +19,14 @@ interface FilterSetInterface public function getName(): string; /** - * @return string + * @return string|null */ - public function getDataLoader(): string; + public function getDataLoader(); /** - * @return int + * @return int|null */ - public function getQuality(): int; + public function getQuality(); /** * @return FilterInterface[] diff --git a/Exception/Config/Filter/NotFoundException.php b/Exception/Config/Filter/NotFoundException.php new file mode 100644 index 000000000..c3f61427f --- /dev/null +++ b/Exception/Config/Filter/NotFoundException.php @@ -0,0 +1,17 @@ + - - - - - + + - - + + + + + + + + + + + - + - + diff --git a/Tests/Config/FilterSetBuilderTest.php b/Tests/Config/FilterSetBuilderTest.php index 4eaad9f0e..3fd1c8fbc 100644 --- a/Tests/Config/FilterSetBuilderTest.php +++ b/Tests/Config/FilterSetBuilderTest.php @@ -11,10 +11,12 @@ namespace Liip\ImagineBundle\Tests\Config; +use Liip\ImagineBundle\Config\FilterFactoryCollection; +use Liip\ImagineBundle\Config\FilterFactoryCollectionInterface; use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Config\FilterSetBuilder; use Liip\ImagineBundle\Config\FilterSetInterface; -use Liip\ImagineBundle\Factory\Config\FilterFactory; +use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; use Liip\ImagineBundle\Factory\Config\FilterSetFactory; use PHPUnit\Framework\TestCase; @@ -29,9 +31,9 @@ class FilterSetBuilderTest extends TestCase private $filterSetFactoryMock; /** - * @var FilterFactory|\PHPUnit_Framework_MockObject_MockObject + * @var FilterFactoryCollection|\PHPUnit_Framework_MockObject_MockObject */ - private $filterFactoryMock; + private $filterFactoryCollectionMock; /** * @var FilterSetBuilder @@ -41,8 +43,8 @@ class FilterSetBuilderTest extends TestCase protected function setUp() { $this->filterSetFactoryMock = $this->createMock(FilterSetFactory::class); - $this->filterFactoryMock = $this->createMock(FilterFactory::class); - $this->model = new FilterSetBuilder($this->filterSetFactoryMock, $this->filterFactoryMock); + $this->filterFactoryCollectionMock = $this->createMock(FilterFactoryCollectionInterface::class); + $this->model = new FilterSetBuilder($this->filterSetFactoryMock, $this->filterFactoryCollectionMock); } public function testBuildWithEmptyFilters() @@ -59,8 +61,8 @@ public function testBuildWithEmptyFilters() ->with($name, $dataLoader, $quality, $filters) ->will($this->returnValue($filterSetMock)); - $this->filterFactoryMock->expects($this->never()) - ->method('create'); + $this->filterFactoryCollectionMock->expects($this->never()) + ->method('getFilterFactoryByName'); $filterSet = $this->model->build($name, [ 'data_loader' => $dataLoader, @@ -83,16 +85,22 @@ public function testBuildWithFilters() ]; $filterMock = $this->createMock(FilterInterface::class); + $filterFactoryMock = $this->createMock(FilterFactoryInterface::class); $filterSetMock = $this->createMock(FilterSetInterface::class); + $filterFactoryMock->expects($this->once()) + ->method('create') + ->with($filterData) + ->will($this->returnValue($filterMock)); + $this->filterSetFactoryMock->expects($this->once()) ->method('create') ->will($this->returnValue($filterSetMock)); - $this->filterFactoryMock->expects($this->once()) - ->method('create') - ->with($filterCode, $filterData) - ->will($this->returnValue($filterMock)); + $this->filterFactoryCollectionMock->expects($this->once()) + ->method('getFilterFactoryByName') + ->with($filterCode) + ->will($this->returnValue($filterFactoryMock)); $filterSet = $this->model->build($name, [ 'data_loader' => $dataLoader, From d907670fa195b3a4837eaa243c3ae91811b78de7 Mon Sep 17 00:00:00 2001 From: nrg Date: Tue, 29 May 2018 17:05:26 +0200 Subject: [PATCH 06/30] fixed static tests --- Config/Filter/Type/Crop.php | 4 ++-- Config/Filter/Type/Thumbnail.php | 6 +++--- Config/FilterFactoryCollection.php | 5 ++++- Config/FilterFactoryCollectionInterface.php | 1 + Config/FilterSetBuilder.php | 4 ++-- Exception/Config/Filter/NotFoundException.php | 3 ++- Factory/Config/Filter/CropFactory.php | 1 + Factory/Config/Filter/StripFactory.php | 1 + Factory/Config/Filter/ThumbnailFactory.php | 1 + Factory/Config/FilterFactoryInterface.php | 2 +- Factory/Config/FilterSetFactory.php | 6 +++--- 11 files changed, 21 insertions(+), 13 deletions(-) diff --git a/Config/Filter/Type/Crop.php b/Config/Filter/Type/Crop.php index 694a1b3e4..5447e0703 100644 --- a/Config/Filter/Type/Crop.php +++ b/Config/Filter/Type/Crop.php @@ -32,8 +32,8 @@ final class Crop implements FilterInterface /** * @param string $name - * @param array $start - * @param array $size + * @param array $start + * @param array $size */ public function __construct(string $name, array $start, array $size) { diff --git a/Config/Filter/Type/Thumbnail.php b/Config/Filter/Type/Thumbnail.php index 80c554620..a47cb65f0 100644 --- a/Config/Filter/Type/Thumbnail.php +++ b/Config/Filter/Type/Thumbnail.php @@ -41,10 +41,10 @@ final class Thumbnail implements FilterInterface private $filter; /** - * @param string $name - * @param array $size + * @param string $name + * @param array $size * @param string|null $mode - * @param bool|null $allowUpscale + * @param bool|null $allowUpscale * @param string|null $filter */ public function __construct( diff --git a/Config/FilterFactoryCollection.php b/Config/FilterFactoryCollection.php index 22c0b1ed3..3c965d0d7 100644 --- a/Config/FilterFactoryCollection.php +++ b/Config/FilterFactoryCollection.php @@ -23,6 +23,7 @@ final class FilterFactoryCollection implements FilterFactoryCollectionInterface /** * FilterCollection constructor. + * * @param FilterFactoryInterface ...$filterFactories */ public function __construct(FilterFactoryInterface ...$filterFactories) @@ -32,8 +33,10 @@ public function __construct(FilterFactoryInterface ...$filterFactories) /** * @param string $name - * @return FilterFactoryInterface + * * @throws NotFoundException + * + * @return FilterFactoryInterface */ public function getFilterFactoryByName(string $name): FilterFactoryInterface { diff --git a/Config/FilterFactoryCollectionInterface.php b/Config/FilterFactoryCollectionInterface.php index 3752ae81e..828694c24 100644 --- a/Config/FilterFactoryCollectionInterface.php +++ b/Config/FilterFactoryCollectionInterface.php @@ -17,6 +17,7 @@ interface FilterFactoryCollectionInterface { /** * @param string $name + * * @return FilterFactoryInterface */ public function getFilterFactoryByName(string $name): FilterFactoryInterface; diff --git a/Config/FilterSetBuilder.php b/Config/FilterSetBuilder.php index 0da639b18..1a9eeccc9 100644 --- a/Config/FilterSetBuilder.php +++ b/Config/FilterSetBuilder.php @@ -26,7 +26,7 @@ final class FilterSetBuilder implements FilterSetBuilderInterface private $filterFactoryCollection; /** - * @param FilterSetFactory $filterSetFactory + * @param FilterSetFactory $filterSetFactory * @param FilterFactoryCollection $filterFactoryCollection */ public function __construct(FilterSetFactory $filterSetFactory, FilterFactoryCollectionInterface $filterFactoryCollection) @@ -37,7 +37,7 @@ public function __construct(FilterSetFactory $filterSetFactory, FilterFactoryCol /** * @param string $filterSetName - * @param array $filterSetData + * @param array $filterSetData * * @return FilterSetInterface */ diff --git a/Exception/Config/Filter/NotFoundException.php b/Exception/Config/Filter/NotFoundException.php index c3f61427f..5afdadf23 100644 --- a/Exception/Config/Filter/NotFoundException.php +++ b/Exception/Config/Filter/NotFoundException.php @@ -14,4 +14,5 @@ use Liip\ImagineBundle\Exception\ExceptionInterface; class NotFoundException extends \Exception implements ExceptionInterface -{} +{ +} diff --git a/Factory/Config/Filter/CropFactory.php b/Factory/Config/Filter/CropFactory.php index 68d9741c7..272e7053f 100644 --- a/Factory/Config/Filter/CropFactory.php +++ b/Factory/Config/Filter/CropFactory.php @@ -29,6 +29,7 @@ public function getName(): string /** * @param array $options + * * @return FilterInterface */ public function create(array $options): FilterInterface diff --git a/Factory/Config/Filter/StripFactory.php b/Factory/Config/Filter/StripFactory.php index 1a138a6b6..828021434 100644 --- a/Factory/Config/Filter/StripFactory.php +++ b/Factory/Config/Filter/StripFactory.php @@ -29,6 +29,7 @@ public function getName(): string /** * @param array $options + * * @return FilterInterface */ public function create(array $options): FilterInterface diff --git a/Factory/Config/Filter/ThumbnailFactory.php b/Factory/Config/Filter/ThumbnailFactory.php index bd3c1cbb5..dc810e435 100644 --- a/Factory/Config/Filter/ThumbnailFactory.php +++ b/Factory/Config/Filter/ThumbnailFactory.php @@ -29,6 +29,7 @@ public function getName(): string /** * @param array $options + * * @return FilterInterface */ public function create(array $options): FilterInterface diff --git a/Factory/Config/FilterFactoryInterface.php b/Factory/Config/FilterFactoryInterface.php index 810984a84..502a2f4fd 100644 --- a/Factory/Config/FilterFactoryInterface.php +++ b/Factory/Config/FilterFactoryInterface.php @@ -21,7 +21,7 @@ interface FilterFactoryInterface public function getName(): string; /** - * @param array $options + * @param array $options * * @return FilterInterface */ diff --git a/Factory/Config/FilterSetFactory.php b/Factory/Config/FilterSetFactory.php index d3406a328..81d20198b 100644 --- a/Factory/Config/FilterSetFactory.php +++ b/Factory/Config/FilterSetFactory.php @@ -16,10 +16,10 @@ class FilterSetFactory { /** - * @param string $name + * @param string $name * @param string|null $dataLoader - * @param int|null $quality - * @param array $filters + * @param int|null $quality + * @param array $filters * * @return FilterSet */ From e2131244531f69b8b8ed769edb805502c4b2a919 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 4 Jun 2018 14:13:13 +0200 Subject: [PATCH 07/30] applied requested review changes --- Config/Filter.php | 51 --------------------- Config/Filter/Type/Crop.php | 4 +- Config/Filter/Type/Thumbnail.php | 2 +- Config/FilterFactoryCollection.php | 19 ++++---- Config/FilterFactoryCollectionInterface.php | 29 ------------ Config/FilterSetBuilder.php | 4 +- Factory/Config/Filter/CropFactory.php | 6 +-- Factory/Config/Filter/StripFactory.php | 6 +-- Factory/Config/Filter/ThumbnailFactory.php | 6 +-- Factory/Config/FilterFactoryInterface.php | 2 + Resources/config/imagine.xml | 7 --- Tests/Config/FilterSetBuilderTest.php | 3 +- 12 files changed, 22 insertions(+), 117 deletions(-) delete mode 100644 Config/Filter.php delete mode 100644 Config/FilterFactoryCollectionInterface.php diff --git a/Config/Filter.php b/Config/Filter.php deleted file mode 100644 index 0adc31552..000000000 --- a/Config/Filter.php +++ /dev/null @@ -1,51 +0,0 @@ -name = $name; - $this->options = $options; - } - - /** - * @return string - */ - public function getName(): string - { - return $this->name; - } - - /** - * @return array - */ - public function getOptions(): array - { - return $this->options; - } -} diff --git a/Config/Filter/Type/Crop.php b/Config/Filter/Type/Crop.php index 5447e0703..dce7a7e8c 100644 --- a/Config/Filter/Type/Crop.php +++ b/Config/Filter/Type/Crop.php @@ -32,8 +32,8 @@ final class Crop implements FilterInterface /** * @param string $name - * @param array $start - * @param array $size + * @param array $start start coordinates {x,y} + * @param array $size size parameters {width, height} */ public function __construct(string $name, array $start, array $size) { diff --git a/Config/Filter/Type/Thumbnail.php b/Config/Filter/Type/Thumbnail.php index a47cb65f0..98c950f9a 100644 --- a/Config/Filter/Type/Thumbnail.php +++ b/Config/Filter/Type/Thumbnail.php @@ -42,7 +42,7 @@ final class Thumbnail implements FilterInterface /** * @param string $name - * @param array $size + * @param array $size size parameters {width, height} * @param string|null $mode * @param bool|null $allowUpscale * @param string|null $filter diff --git a/Config/FilterFactoryCollection.php b/Config/FilterFactoryCollection.php index 3c965d0d7..43bfecde2 100644 --- a/Config/FilterFactoryCollection.php +++ b/Config/FilterFactoryCollection.php @@ -14,21 +14,21 @@ use Liip\ImagineBundle\Exception\Config\Filter\NotFoundException; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; -final class FilterFactoryCollection implements FilterFactoryCollectionInterface +class FilterFactoryCollection { /** * @var FilterFactoryInterface[] */ - private $filterFactories; + private $filterFactories = []; /** - * FilterCollection constructor. - * * @param FilterFactoryInterface ...$filterFactories */ public function __construct(FilterFactoryInterface ...$filterFactories) { - $this->filterFactories = $filterFactories; + foreach ($filterFactories as $filterFactory) { + $this->filterFactories[$filterFactory->getName()] = $filterFactory; + } } /** @@ -40,13 +40,10 @@ public function __construct(FilterFactoryInterface ...$filterFactories) */ public function getFilterFactoryByName(string $name): FilterFactoryInterface { - foreach ($this->filterFactories as $filterFactory) { - if ($filterFactory->getName() === $name) { - return $filterFactory; - } + if (!isset($this->filterFactories[$name])) { + throw new NotFoundException(sprintf("Filter factory with name '%s' was not found.", $name)); } - - throw new NotFoundException(sprintf("Filter factory with name '%s' was not found.", $name)); + return $this->filterFactories[$name]; } /** diff --git a/Config/FilterFactoryCollectionInterface.php b/Config/FilterFactoryCollectionInterface.php deleted file mode 100644 index 828694c24..000000000 --- a/Config/FilterFactoryCollectionInterface.php +++ /dev/null @@ -1,29 +0,0 @@ -filterSetFactory = $filterSetFactory; $this->filterFactoryCollection = $filterFactoryCollection; diff --git a/Factory/Config/Filter/CropFactory.php b/Factory/Config/Filter/CropFactory.php index 272e7053f..bc7382b55 100644 --- a/Factory/Config/Filter/CropFactory.php +++ b/Factory/Config/Filter/CropFactory.php @@ -20,7 +20,7 @@ final class CropFactory implements FilterFactoryInterface const NAME = 'crop'; /** - * @return string + * {@inheritdoc} */ public function getName(): string { @@ -28,9 +28,7 @@ public function getName(): string } /** - * @param array $options - * - * @return FilterInterface + * {@inheritdoc} */ public function create(array $options): FilterInterface { diff --git a/Factory/Config/Filter/StripFactory.php b/Factory/Config/Filter/StripFactory.php index 828021434..3da4bff48 100644 --- a/Factory/Config/Filter/StripFactory.php +++ b/Factory/Config/Filter/StripFactory.php @@ -20,7 +20,7 @@ final class StripFactory implements FilterFactoryInterface const NAME = 'strip'; /** - * @return string + * {@inheritdoc} */ public function getName(): string { @@ -28,9 +28,7 @@ public function getName(): string } /** - * @param array $options - * - * @return FilterInterface + * {@inheritdoc} */ public function create(array $options): FilterInterface { diff --git a/Factory/Config/Filter/ThumbnailFactory.php b/Factory/Config/Filter/ThumbnailFactory.php index dc810e435..cd9cd4be9 100644 --- a/Factory/Config/Filter/ThumbnailFactory.php +++ b/Factory/Config/Filter/ThumbnailFactory.php @@ -20,7 +20,7 @@ final class ThumbnailFactory implements FilterFactoryInterface const NAME = 'thumbnail'; /** - * @return string + * {@inheritdoc} */ public function getName(): string { @@ -28,9 +28,7 @@ public function getName(): string } /** - * @param array $options - * - * @return FilterInterface + * {@inheritdoc} */ public function create(array $options): FilterInterface { diff --git a/Factory/Config/FilterFactoryInterface.php b/Factory/Config/FilterFactoryInterface.php index 502a2f4fd..1d2c47739 100644 --- a/Factory/Config/FilterFactoryInterface.php +++ b/Factory/Config/FilterFactoryInterface.php @@ -16,6 +16,8 @@ interface FilterFactoryInterface { /** + * Filter name + * * @return string */ public function getName(): string; diff --git a/Resources/config/imagine.xml b/Resources/config/imagine.xml index 101e1c09b..eaf664ede 100644 --- a/Resources/config/imagine.xml +++ b/Resources/config/imagine.xml @@ -34,16 +34,9 @@ - - - - - - - diff --git a/Tests/Config/FilterSetBuilderTest.php b/Tests/Config/FilterSetBuilderTest.php index 3fd1c8fbc..941a96829 100644 --- a/Tests/Config/FilterSetBuilderTest.php +++ b/Tests/Config/FilterSetBuilderTest.php @@ -12,7 +12,6 @@ namespace Liip\ImagineBundle\Tests\Config; use Liip\ImagineBundle\Config\FilterFactoryCollection; -use Liip\ImagineBundle\Config\FilterFactoryCollectionInterface; use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Config\FilterSetBuilder; use Liip\ImagineBundle\Config\FilterSetInterface; @@ -43,7 +42,7 @@ class FilterSetBuilderTest extends TestCase protected function setUp() { $this->filterSetFactoryMock = $this->createMock(FilterSetFactory::class); - $this->filterFactoryCollectionMock = $this->createMock(FilterFactoryCollectionInterface::class); + $this->filterFactoryCollectionMock = $this->createMock(FilterFactoryCollection::class); $this->model = new FilterSetBuilder($this->filterSetFactoryMock, $this->filterFactoryCollectionMock); } From 851a38b272b6de595032463f41d970e0285f0bd5 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 4 Jun 2018 14:13:34 +0200 Subject: [PATCH 08/30] fixed static tests --- Config/FilterFactoryCollection.php | 1 + 1 file changed, 1 insertion(+) diff --git a/Config/FilterFactoryCollection.php b/Config/FilterFactoryCollection.php index 43bfecde2..c46c3e35c 100644 --- a/Config/FilterFactoryCollection.php +++ b/Config/FilterFactoryCollection.php @@ -43,6 +43,7 @@ public function getFilterFactoryByName(string $name): FilterFactoryInterface if (!isset($this->filterFactories[$name])) { throw new NotFoundException(sprintf("Filter factory with name '%s' was not found.", $name)); } + return $this->filterFactories[$name]; } From 27c87941c3e1c0740e266da6dd0d0fa00e0b2147 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 4 Jun 2018 14:51:44 +0200 Subject: [PATCH 09/30] removed FilterConfiguration object dependency --- Config/FilterSetCollection.php | 18 ++++++------ Resources/config/imagine.xml | 2 +- Tests/Config/FilterSetCollectionTest.php | 36 ++++-------------------- 3 files changed, 14 insertions(+), 42 deletions(-) diff --git a/Config/FilterSetCollection.php b/Config/FilterSetCollection.php index cf729382a..50ba2aa61 100644 --- a/Config/FilterSetCollection.php +++ b/Config/FilterSetCollection.php @@ -11,8 +11,6 @@ namespace Liip\ImagineBundle\Config; -use Liip\ImagineBundle\Imagine\Filter\FilterConfiguration; - final class FilterSetCollection { /** @@ -21,23 +19,23 @@ final class FilterSetCollection private $filterSets = []; /** - * @var FilterConfiguration + * @var FilterSetBuilderInterface */ - private $filterConfiguration; + private $filterSetBuilder; /** - * @var FilterSetBuilderInterface + * @var array */ - private $filterSetBuilder; + private $filtersConfiguration; /** - * @param FilterConfiguration $filterConfiguration * @param FilterSetBuilderInterface $filterSetBuilder + * @param array $filtersConfiguration */ - public function __construct(FilterConfiguration $filterConfiguration, FilterSetBuilderInterface $filterSetBuilder) + public function __construct(FilterSetBuilderInterface $filterSetBuilder, array $filtersConfiguration = []) { - $this->filterConfiguration = $filterConfiguration; $this->filterSetBuilder = $filterSetBuilder; + $this->filtersConfiguration = $filtersConfiguration; } /** @@ -49,7 +47,7 @@ public function getFilterSets() return $this->filterSets; } - foreach ($this->filterConfiguration->all() as $filterSetName => $filterSetData) { + foreach ($this->filtersConfiguration as $filterSetName => $filterSetData) { $this->filterSets[] = $this->filterSetBuilder->build($filterSetName, $filterSetData); } diff --git a/Resources/config/imagine.xml b/Resources/config/imagine.xml index eaf664ede..e886dc4d6 100644 --- a/Resources/config/imagine.xml +++ b/Resources/config/imagine.xml @@ -53,8 +53,8 @@ - + %liip_imagine.filter_sets% diff --git a/Tests/Config/FilterSetCollectionTest.php b/Tests/Config/FilterSetCollectionTest.php index 93524f01b..2b9333868 100644 --- a/Tests/Config/FilterSetCollectionTest.php +++ b/Tests/Config/FilterSetCollectionTest.php @@ -14,7 +14,6 @@ use Liip\ImagineBundle\Config\FilterSetBuilderInterface; use Liip\ImagineBundle\Config\FilterSetCollection; use Liip\ImagineBundle\Config\FilterSetInterface; -use Liip\ImagineBundle\Imagine\Filter\FilterConfiguration; use PHPUnit\Framework\TestCase; /** @@ -22,29 +21,6 @@ */ class FilterSetCollectionTest extends TestCase { - /** - * @var FilterConfiguration|\PHPUnit_Framework_MockObject_MockObject - */ - private $filterConfigurationMock; - - /** - * @var FilterSetBuilderInterface|\PHPUnit_Framework_MockObject_MockObject - */ - private $filterSetBuilderMock; - - /** - * @var FilterSetCollection - */ - private $model; - - protected function setUp() - { - $this->filterConfigurationMock = $this->createMock(FilterConfiguration::class); - $this->filterSetBuilderMock = $this->createMock(FilterSetBuilderInterface::class); - - $this->model = new FilterSetCollection($this->filterConfigurationMock, $this->filterSetBuilderMock); - } - public function testGetFilterSets() { $filterSetName = 'foo'; @@ -52,16 +28,14 @@ public function testGetFilterSets() $filterSetMock = $this->createMock(FilterSetInterface::class); - $this->filterConfigurationMock->expects($this->once()) - ->method('all') - ->will($this->returnValue([$filterSetName => $filterSetData])); - - $this->filterSetBuilderMock->expects($this->once()) + $filterSetBuilderMock = $this->createMock(FilterSetBuilderInterface::class); + $filterSetBuilderMock->expects($this->once()) ->method('build') ->with($filterSetName, $filterSetData) ->will($this->returnValue($filterSetMock)); - $this->assertSame([$filterSetMock], $this->model->getFilterSets()); - $this->assertSame([$filterSetMock], $this->model->getFilterSets()); + $model = new FilterSetCollection($filterSetBuilderMock, [$filterSetName => $filterSetData]); + $this->assertSame([$filterSetMock], $model->getFilterSets()); + $this->assertSame([$filterSetMock], $model->getFilterSets()); } } From 5c4d68f993af12f3c2a25ddb8768e7f6639a00cd Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 4 Jun 2018 15:17:49 +0200 Subject: [PATCH 10/30] renamed FilterSet to Stack --- Config/{FilterSet.php => Stack.php} | 2 +- ...{FilterSetBuilder.php => StackBuilder.php} | 14 ++++++------- ...nterface.php => StackBuilderInterface.php} | 6 +++--- ...rSetCollection.php => StackCollection.php} | 10 +++++----- ...terSetInterface.php => StackInterface.php} | 2 +- ...{FilterSetFactory.php => StackFactory.php} | 8 ++++---- Resources/config/imagine.xml | 14 ++++++------- Tests/Config/FilterSetBuilderTest.php | 20 +++++++++---------- Tests/Config/FilterSetCollectionTest.php | 14 ++++++------- Tests/Config/FilterSetTest.php | 6 +++--- 10 files changed, 48 insertions(+), 48 deletions(-) rename Config/{FilterSet.php => Stack.php} (97%) rename Config/{FilterSetBuilder.php => StackBuilder.php} (78%) rename Config/{FilterSetBuilderInterface.php => StackBuilderInterface.php} (83%) rename Config/{FilterSetCollection.php => StackCollection.php} (79%) rename Config/{FilterSetInterface.php => StackInterface.php} (95%) rename Factory/Config/{FilterSetFactory.php => StackFactory.php} (79%) diff --git a/Config/FilterSet.php b/Config/Stack.php similarity index 97% rename from Config/FilterSet.php rename to Config/Stack.php index a3ccfb3b2..2deb7c450 100644 --- a/Config/FilterSet.php +++ b/Config/Stack.php @@ -13,7 +13,7 @@ use Liip\ImagineBundle\Exception\InvalidArgumentException; -final class FilterSet implements FilterSetInterface +final class Stack implements StackInterface { /** * @var string diff --git a/Config/FilterSetBuilder.php b/Config/StackBuilder.php similarity index 78% rename from Config/FilterSetBuilder.php rename to Config/StackBuilder.php index 51b8aa74b..9abb948e1 100644 --- a/Config/FilterSetBuilder.php +++ b/Config/StackBuilder.php @@ -11,12 +11,12 @@ namespace Liip\ImagineBundle\Config; -use Liip\ImagineBundle\Factory\Config\FilterSetFactory; +use Liip\ImagineBundle\Factory\Config\StackFactory; -final class FilterSetBuilder implements FilterSetBuilderInterface +final class StackBuilder implements StackBuilderInterface { /** - * @var FilterSetFactory + * @var StackFactory */ private $filterSetFactory; @@ -26,10 +26,10 @@ final class FilterSetBuilder implements FilterSetBuilderInterface private $filterFactoryCollection; /** - * @param FilterSetFactory $filterSetFactory + * @param StackFactory $filterSetFactory * @param FilterFactoryCollection $filterFactoryCollection */ - public function __construct(FilterSetFactory $filterSetFactory, FilterFactoryCollection $filterFactoryCollection) + public function __construct(StackFactory $filterSetFactory, FilterFactoryCollection $filterFactoryCollection) { $this->filterSetFactory = $filterSetFactory; $this->filterFactoryCollection = $filterFactoryCollection; @@ -39,9 +39,9 @@ public function __construct(FilterSetFactory $filterSetFactory, FilterFactoryCol * @param string $filterSetName * @param array $filterSetData * - * @return FilterSetInterface + * @return StackInterface */ - public function build(string $filterSetName, array $filterSetData): FilterSetInterface + public function build(string $filterSetName, array $filterSetData): StackInterface { $filters = []; if (!empty($filterSetData['filters'])) { diff --git a/Config/FilterSetBuilderInterface.php b/Config/StackBuilderInterface.php similarity index 83% rename from Config/FilterSetBuilderInterface.php rename to Config/StackBuilderInterface.php index 6d5505e61..8018fcf2b 100644 --- a/Config/FilterSetBuilderInterface.php +++ b/Config/StackBuilderInterface.php @@ -11,13 +11,13 @@ namespace Liip\ImagineBundle\Config; -interface FilterSetBuilderInterface +interface StackBuilderInterface { /** * @param string $filterSetName * @param array $filterSetData * - * @return FilterSetInterface + * @return StackInterface */ - public function build(string $filterSetName, array $filterSetData): FilterSetInterface; + public function build(string $filterSetName, array $filterSetData): StackInterface; } diff --git a/Config/FilterSetCollection.php b/Config/StackCollection.php similarity index 79% rename from Config/FilterSetCollection.php rename to Config/StackCollection.php index 50ba2aa61..af1afb9ba 100644 --- a/Config/FilterSetCollection.php +++ b/Config/StackCollection.php @@ -11,7 +11,7 @@ namespace Liip\ImagineBundle\Config; -final class FilterSetCollection +final class StackCollection { /** * @var array @@ -19,7 +19,7 @@ final class FilterSetCollection private $filterSets = []; /** - * @var FilterSetBuilderInterface + * @var StackBuilderInterface */ private $filterSetBuilder; @@ -29,17 +29,17 @@ final class FilterSetCollection private $filtersConfiguration; /** - * @param FilterSetBuilderInterface $filterSetBuilder + * @param StackBuilderInterface $filterSetBuilder * @param array $filtersConfiguration */ - public function __construct(FilterSetBuilderInterface $filterSetBuilder, array $filtersConfiguration = []) + public function __construct(StackBuilderInterface $filterSetBuilder, array $filtersConfiguration = []) { $this->filterSetBuilder = $filterSetBuilder; $this->filtersConfiguration = $filtersConfiguration; } /** - * @return FilterSetInterface[] + * @return StackInterface[] */ public function getFilterSets() { diff --git a/Config/FilterSetInterface.php b/Config/StackInterface.php similarity index 95% rename from Config/FilterSetInterface.php rename to Config/StackInterface.php index 04d6dd51a..0dbd5482b 100644 --- a/Config/FilterSetInterface.php +++ b/Config/StackInterface.php @@ -11,7 +11,7 @@ namespace Liip\ImagineBundle\Config; -interface FilterSetInterface +interface StackInterface { /** * @return string diff --git a/Factory/Config/FilterSetFactory.php b/Factory/Config/StackFactory.php similarity index 79% rename from Factory/Config/FilterSetFactory.php rename to Factory/Config/StackFactory.php index 81d20198b..21cd18a84 100644 --- a/Factory/Config/FilterSetFactory.php +++ b/Factory/Config/StackFactory.php @@ -11,9 +11,9 @@ namespace Liip\ImagineBundle\Factory\Config; -use Liip\ImagineBundle\Config\FilterSet; +use Liip\ImagineBundle\Config\Stack; -class FilterSetFactory +class StackFactory { /** * @param string $name @@ -21,10 +21,10 @@ class FilterSetFactory * @param int|null $quality * @param array $filters * - * @return FilterSet + * @return Stack */ public function create(string $name, string $dataLoader = null, int $quality = null, array $filters) { - return new FilterSet($name, $dataLoader, $quality, $filters); + return new Stack($name, $dataLoader, $quality, $filters); } } diff --git a/Resources/config/imagine.xml b/Resources/config/imagine.xml index e886dc4d6..2f2c486cb 100644 --- a/Resources/config/imagine.xml +++ b/Resources/config/imagine.xml @@ -33,7 +33,7 @@ - + @@ -46,17 +46,17 @@ - - + + - + - - + + %liip_imagine.filter_sets% - + diff --git a/Tests/Config/FilterSetBuilderTest.php b/Tests/Config/FilterSetBuilderTest.php index 941a96829..d9032af0e 100644 --- a/Tests/Config/FilterSetBuilderTest.php +++ b/Tests/Config/FilterSetBuilderTest.php @@ -13,19 +13,19 @@ use Liip\ImagineBundle\Config\FilterFactoryCollection; use Liip\ImagineBundle\Config\FilterInterface; -use Liip\ImagineBundle\Config\FilterSetBuilder; -use Liip\ImagineBundle\Config\FilterSetInterface; +use Liip\ImagineBundle\Config\StackBuilder; +use Liip\ImagineBundle\Config\StackInterface; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; -use Liip\ImagineBundle\Factory\Config\FilterSetFactory; +use Liip\ImagineBundle\Factory\Config\StackFactory; use PHPUnit\Framework\TestCase; /** - * @covers \Liip\ImagineBundle\Config\FilterSetBuilder + * @covers \Liip\ImagineBundle\Config\StackBuilder */ class FilterSetBuilderTest extends TestCase { /** - * @var FilterSetFactory|\PHPUnit_Framework_MockObject_MockObject + * @var StackFactory|\PHPUnit_Framework_MockObject_MockObject */ private $filterSetFactoryMock; @@ -35,15 +35,15 @@ class FilterSetBuilderTest extends TestCase private $filterFactoryCollectionMock; /** - * @var FilterSetBuilder + * @var StackBuilder */ private $model; protected function setUp() { - $this->filterSetFactoryMock = $this->createMock(FilterSetFactory::class); + $this->filterSetFactoryMock = $this->createMock(StackFactory::class); $this->filterFactoryCollectionMock = $this->createMock(FilterFactoryCollection::class); - $this->model = new FilterSetBuilder($this->filterSetFactoryMock, $this->filterFactoryCollectionMock); + $this->model = new StackBuilder($this->filterSetFactoryMock, $this->filterFactoryCollectionMock); } public function testBuildWithEmptyFilters() @@ -53,7 +53,7 @@ public function testBuildWithEmptyFilters() $quality = 42; $filters = []; - $filterSetMock = $this->createMock(FilterSetInterface::class); + $filterSetMock = $this->createMock(StackInterface::class); $this->filterSetFactoryMock->expects($this->once()) ->method('create') @@ -85,7 +85,7 @@ public function testBuildWithFilters() $filterMock = $this->createMock(FilterInterface::class); $filterFactoryMock = $this->createMock(FilterFactoryInterface::class); - $filterSetMock = $this->createMock(FilterSetInterface::class); + $filterSetMock = $this->createMock(StackInterface::class); $filterFactoryMock->expects($this->once()) ->method('create') diff --git a/Tests/Config/FilterSetCollectionTest.php b/Tests/Config/FilterSetCollectionTest.php index 2b9333868..83e2b6d9a 100644 --- a/Tests/Config/FilterSetCollectionTest.php +++ b/Tests/Config/FilterSetCollectionTest.php @@ -11,13 +11,13 @@ namespace Liip\ImagineBundle\Tests\Config; -use Liip\ImagineBundle\Config\FilterSetBuilderInterface; -use Liip\ImagineBundle\Config\FilterSetCollection; -use Liip\ImagineBundle\Config\FilterSetInterface; +use Liip\ImagineBundle\Config\StackBuilderInterface; +use Liip\ImagineBundle\Config\StackCollection; +use Liip\ImagineBundle\Config\StackInterface; use PHPUnit\Framework\TestCase; /** - * @covers \Liip\ImagineBundle\Config\FilterSetCollection + * @covers \Liip\ImagineBundle\Config\StackCollection */ class FilterSetCollectionTest extends TestCase { @@ -26,15 +26,15 @@ public function testGetFilterSets() $filterSetName = 'foo'; $filterSetData = ['bar']; - $filterSetMock = $this->createMock(FilterSetInterface::class); + $filterSetMock = $this->createMock(StackInterface::class); - $filterSetBuilderMock = $this->createMock(FilterSetBuilderInterface::class); + $filterSetBuilderMock = $this->createMock(StackBuilderInterface::class); $filterSetBuilderMock->expects($this->once()) ->method('build') ->with($filterSetName, $filterSetData) ->will($this->returnValue($filterSetMock)); - $model = new FilterSetCollection($filterSetBuilderMock, [$filterSetName => $filterSetData]); + $model = new StackCollection($filterSetBuilderMock, [$filterSetName => $filterSetData]); $this->assertSame([$filterSetMock], $model->getFilterSets()); $this->assertSame([$filterSetMock], $model->getFilterSets()); } diff --git a/Tests/Config/FilterSetTest.php b/Tests/Config/FilterSetTest.php index 33c7d9d29..30c159295 100644 --- a/Tests/Config/FilterSetTest.php +++ b/Tests/Config/FilterSetTest.php @@ -12,11 +12,11 @@ namespace Liip\ImagineBundle\Tests\Config; use Liip\ImagineBundle\Config\FilterInterface; -use Liip\ImagineBundle\Config\FilterSet; +use Liip\ImagineBundle\Config\Stack; use PHPUnit\Framework\TestCase; /** - * @covers \Liip\ImagineBundle\Config\FilterSet + * @covers \Liip\ImagineBundle\Config\Stack */ class FilterSetTest extends TestCase { @@ -39,6 +39,6 @@ public function testSetFiltersWithValidFilterSuccess() */ private function buildFilterSet(array $filters) { - new FilterSet('filter_name', 'data_loader', 42, $filters); + new Stack('filter_name', 'data_loader', 42, $filters); } } From e3066126c53dcb523799bc5767789a8d46dde412 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 4 Jun 2018 17:57:55 +0200 Subject: [PATCH 11/30] added filters config objects --- Config/Filter/Type/AutoRotate.php | 38 ++++++++ Config/Filter/Type/Background.php | 103 ++++++++++++++++++++ Config/Filter/Type/Flip.php | 53 ++++++++++ Config/Filter/Type/Grayscale.php | 38 ++++++++ Config/Filter/Type/Interlace.php | 53 ++++++++++ Config/Filter/Type/Paste.php | 53 ++++++++++ Factory/Config/Filter/AutoRotateFactory.php | 37 +++++++ Factory/Config/Filter/BackgroundFactory.php | 42 ++++++++ Factory/Config/Filter/FlipFactory.php | 37 +++++++ Factory/Config/Filter/GrayscaleFactory.php | 37 +++++++ Factory/Config/Filter/InterlaceFactory.php | 42 ++++++++ Factory/Config/Filter/PasteFactory.php | 41 ++++++++ Resources/config/imagine.xml | 12 +++ 13 files changed, 586 insertions(+) create mode 100644 Config/Filter/Type/AutoRotate.php create mode 100644 Config/Filter/Type/Background.php create mode 100644 Config/Filter/Type/Flip.php create mode 100644 Config/Filter/Type/Grayscale.php create mode 100644 Config/Filter/Type/Interlace.php create mode 100644 Config/Filter/Type/Paste.php create mode 100644 Factory/Config/Filter/AutoRotateFactory.php create mode 100644 Factory/Config/Filter/BackgroundFactory.php create mode 100644 Factory/Config/Filter/FlipFactory.php create mode 100644 Factory/Config/Filter/GrayscaleFactory.php create mode 100644 Factory/Config/Filter/InterlaceFactory.php create mode 100644 Factory/Config/Filter/PasteFactory.php diff --git a/Config/Filter/Type/AutoRotate.php b/Config/Filter/Type/AutoRotate.php new file mode 100644 index 000000000..b651bebf2 --- /dev/null +++ b/Config/Filter/Type/AutoRotate.php @@ -0,0 +1,38 @@ +name = $name; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } +} diff --git a/Config/Filter/Type/Background.php b/Config/Filter/Type/Background.php new file mode 100644 index 000000000..5a0c5f1cf --- /dev/null +++ b/Config/Filter/Type/Background.php @@ -0,0 +1,103 @@ +name = $name; + $this->color = $color; + $this->transparency = $transparency; + $this->position = $position; + $this->size = $size; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return string|null + */ + public function getColor(): string + { + return $this->color; + } + + /** + * @return string|null + */ + public function getTransparency(): string + { + return $this->transparency; + } + + /** + * @return string|null + */ + public function getPosition() + { + return $this->position; + } + + /** + * @return array + */ + public function getSize(): array + { + return $this->size; + } +} diff --git a/Config/Filter/Type/Flip.php b/Config/Filter/Type/Flip.php new file mode 100644 index 000000000..849081033 --- /dev/null +++ b/Config/Filter/Type/Flip.php @@ -0,0 +1,53 @@ +name = $name; + $this->axis = $axis; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return string + */ + public function getAxis(): string + { + return $this->axis; + } +} diff --git a/Config/Filter/Type/Grayscale.php b/Config/Filter/Type/Grayscale.php new file mode 100644 index 000000000..53a1ad8fc --- /dev/null +++ b/Config/Filter/Type/Grayscale.php @@ -0,0 +1,38 @@ +name = $name; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } +} diff --git a/Config/Filter/Type/Interlace.php b/Config/Filter/Type/Interlace.php new file mode 100644 index 000000000..1fd6fee94 --- /dev/null +++ b/Config/Filter/Type/Interlace.php @@ -0,0 +1,53 @@ +name = $name; + $this->mode = $mode; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return string + */ + public function getMode(): string + { + return $this->mode; + } +} diff --git a/Config/Filter/Type/Paste.php b/Config/Filter/Type/Paste.php new file mode 100644 index 000000000..1a047ef69 --- /dev/null +++ b/Config/Filter/Type/Paste.php @@ -0,0 +1,53 @@ +name = $name; + $this->start = $start; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return array + */ + public function getStart(): array + { + return $this->start; + } +} diff --git a/Factory/Config/Filter/AutoRotateFactory.php b/Factory/Config/Filter/AutoRotateFactory.php new file mode 100644 index 000000000..c8e462643 --- /dev/null +++ b/Factory/Config/Filter/AutoRotateFactory.php @@ -0,0 +1,37 @@ + + + + + + + + + + + + + From db0a5189280f67e2392f5288c1bc786956267a0c Mon Sep 17 00:00:00 2001 From: nrg Date: Wed, 6 Jun 2018 11:08:22 +0200 Subject: [PATCH 12/30] added filters config objects --- Config/Filter/Type/Background.php | 4 +- Config/Filter/Type/Downscale.php | 68 ++++++++++++ Config/Filter/Type/Flip.php | 2 +- Config/Filter/Type/Paste.php | 2 +- Config/Filter/Type/RelativeResize.php | 103 ++++++++++++++++++ Config/Filter/Type/Resize.php | 53 +++++++++ Config/Filter/Type/Rotate.php | 52 +++++++++ Config/Filter/Type/Scale.php | 68 ++++++++++++ Config/Filter/Type/Upscale.php | 68 ++++++++++++ Config/Filter/Type/Watermark.php | 83 ++++++++++++++ Config/FilterInterface.php | 6 + Config/StackBuilder.php | 2 +- Config/StackCollection.php | 2 +- Factory/Config/Filter/AutoRotateFactory.php | 4 +- Factory/Config/Filter/DownscaleFactory.php | 40 +++++++ Factory/Config/Filter/InterlaceFactory.php | 1 + Factory/Config/Filter/PasteFactory.php | 1 + .../Config/Filter/RelativeResizeFactory.php | 42 +++++++ Factory/Config/Filter/ResizeFactory.php | 42 +++++++ Factory/Config/Filter/RotateFactory.php | 39 +++++++ Factory/Config/Filter/ScaleFactory.php | 40 +++++++ Factory/Config/Filter/UpscaleFactory.php | 40 +++++++ Factory/Config/Filter/WatermarkFactory.php | 40 +++++++ 23 files changed, 794 insertions(+), 8 deletions(-) create mode 100644 Config/Filter/Type/Downscale.php create mode 100644 Config/Filter/Type/RelativeResize.php create mode 100644 Config/Filter/Type/Resize.php create mode 100644 Config/Filter/Type/Rotate.php create mode 100644 Config/Filter/Type/Scale.php create mode 100644 Config/Filter/Type/Upscale.php create mode 100644 Config/Filter/Type/Watermark.php create mode 100644 Factory/Config/Filter/DownscaleFactory.php create mode 100644 Factory/Config/Filter/RelativeResizeFactory.php create mode 100644 Factory/Config/Filter/ResizeFactory.php create mode 100644 Factory/Config/Filter/RotateFactory.php create mode 100644 Factory/Config/Filter/ScaleFactory.php create mode 100644 Factory/Config/Filter/UpscaleFactory.php create mode 100644 Factory/Config/Filter/WatermarkFactory.php diff --git a/Config/Filter/Type/Background.php b/Config/Filter/Type/Background.php index 5a0c5f1cf..0c1a0cbde 100644 --- a/Config/Filter/Type/Background.php +++ b/Config/Filter/Type/Background.php @@ -41,11 +41,11 @@ final class Background implements FilterInterface private $size; /** - * @param string $name + * @param string $name * @param string|null $color * @param string|null $transparency * @param string|null $position - * @param array $size + * @param array $size */ public function __construct( string $name, diff --git a/Config/Filter/Type/Downscale.php b/Config/Filter/Type/Downscale.php new file mode 100644 index 000000000..964f85bce --- /dev/null +++ b/Config/Filter/Type/Downscale.php @@ -0,0 +1,68 @@ +name = $name; + $this->max = $max; + $this->by = $by; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return array + */ + public function getMax(): array + { + return $this->max; + } + + /** + * @return float|null + */ + public function getBy() + { + return $this->by; + } +} diff --git a/Config/Filter/Type/Flip.php b/Config/Filter/Type/Flip.php index 849081033..66de2d330 100644 --- a/Config/Filter/Type/Flip.php +++ b/Config/Filter/Type/Flip.php @@ -27,7 +27,7 @@ final class Flip implements FilterInterface /** * @param string $name - * @param string $axis possible values are: "x", "horizontal", "y", or "vertical". + * @param string $axis possible values are: "x", "horizontal", "y", or "vertical" */ public function __construct(string $name, string $axis) { diff --git a/Config/Filter/Type/Paste.php b/Config/Filter/Type/Paste.php index 1a047ef69..faaec792d 100644 --- a/Config/Filter/Type/Paste.php +++ b/Config/Filter/Type/Paste.php @@ -27,7 +27,7 @@ final class Paste implements FilterInterface /** * @param string $name - * @param array $start + * @param array $start */ public function __construct(string $name, array $start = []) { diff --git a/Config/Filter/Type/RelativeResize.php b/Config/Filter/Type/RelativeResize.php new file mode 100644 index 000000000..5bcf07d66 --- /dev/null +++ b/Config/Filter/Type/RelativeResize.php @@ -0,0 +1,103 @@ +name = $name; + $this->heighten = $heighten; + $this->widen = $widen; + $this->increase = $increase; + $this->scale = $scale; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return float|null + */ + public function getHeighten() + { + return $this->heighten; + } + + /** + * @return float|null + */ + public function getWiden() + { + return $this->widen; + } + + /** + * @return float|null + */ + public function getIncrease() + { + return $this->increase; + } + + /** + * @return float|null + */ + public function getScale() + { + return $this->scale; + } +} diff --git a/Config/Filter/Type/Resize.php b/Config/Filter/Type/Resize.php new file mode 100644 index 000000000..8b5f0a126 --- /dev/null +++ b/Config/Filter/Type/Resize.php @@ -0,0 +1,53 @@ +name = $name; + $this->size = $size; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return array + */ + public function getSize(): array + { + return $this->size; + } +} diff --git a/Config/Filter/Type/Rotate.php b/Config/Filter/Type/Rotate.php new file mode 100644 index 000000000..ac5bc00c9 --- /dev/null +++ b/Config/Filter/Type/Rotate.php @@ -0,0 +1,52 @@ +name = $name; + $this->angle = $angle; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return int + */ + public function getAngle(): int + { + return $this->angle; + } +} diff --git a/Config/Filter/Type/Scale.php b/Config/Filter/Type/Scale.php new file mode 100644 index 000000000..482748c6a --- /dev/null +++ b/Config/Filter/Type/Scale.php @@ -0,0 +1,68 @@ +name = $name; + $this->dimensions = $dimensions; + $this->to = $to; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return array + */ + public function getDimensions(): array + { + return $this->dimensions; + } + + /** + * @return float + */ + public function getTo() + { + return $this->to; + } +} diff --git a/Config/Filter/Type/Upscale.php b/Config/Filter/Type/Upscale.php new file mode 100644 index 000000000..bdf53f7da --- /dev/null +++ b/Config/Filter/Type/Upscale.php @@ -0,0 +1,68 @@ +name = $name; + $this->min = $min; + $this->by = $by; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return array + */ + public function getMin(): array + { + return $this->min; + } + + /** + * @return float|null + */ + public function getBy() + { + return $this->by; + } +} diff --git a/Config/Filter/Type/Watermark.php b/Config/Filter/Type/Watermark.php new file mode 100644 index 000000000..e1d9713b3 --- /dev/null +++ b/Config/Filter/Type/Watermark.php @@ -0,0 +1,83 @@ +name = $name; + $this->image = $image; + $this->position = $position; + $this->size = $size; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return string + */ + public function getImage(): string + { + return $this->image; + } + + /** + * @return string + */ + public function getPosition(): string + { + return $this->position; + } + + /** + * @return float|null + */ + public function getSize() + { + return $this->size; + } +} diff --git a/Config/FilterInterface.php b/Config/FilterInterface.php index 1daa853c6..690c87ae7 100644 --- a/Config/FilterInterface.php +++ b/Config/FilterInterface.php @@ -11,6 +11,12 @@ namespace Liip\ImagineBundle\Config; +/** + * A filter contains the configuration for an image transformation operation. + * + * The type of operation is defined by the filter class. The operation parameters are specific to + * the filter. + */ interface FilterInterface { /** diff --git a/Config/StackBuilder.php b/Config/StackBuilder.php index 9abb948e1..f01a0bcb3 100644 --- a/Config/StackBuilder.php +++ b/Config/StackBuilder.php @@ -26,7 +26,7 @@ final class StackBuilder implements StackBuilderInterface private $filterFactoryCollection; /** - * @param StackFactory $filterSetFactory + * @param StackFactory $filterSetFactory * @param FilterFactoryCollection $filterFactoryCollection */ public function __construct(StackFactory $filterSetFactory, FilterFactoryCollection $filterFactoryCollection) diff --git a/Config/StackCollection.php b/Config/StackCollection.php index af1afb9ba..45fbc4510 100644 --- a/Config/StackCollection.php +++ b/Config/StackCollection.php @@ -30,7 +30,7 @@ final class StackCollection /** * @param StackBuilderInterface $filterSetBuilder - * @param array $filtersConfiguration + * @param array $filtersConfiguration */ public function __construct(StackBuilderInterface $filterSetBuilder, array $filtersConfiguration = []) { diff --git a/Factory/Config/Filter/AutoRotateFactory.php b/Factory/Config/Filter/AutoRotateFactory.php index c8e462643..0966e9aa7 100644 --- a/Factory/Config/Filter/AutoRotateFactory.php +++ b/Factory/Config/Filter/AutoRotateFactory.php @@ -11,7 +11,7 @@ namespace Liip\ImagineBundle\Factory\Config\Filter; -use Liip\ImagineBundle\Config\Filter\Type\Grayscale; +use Liip\ImagineBundle\Config\Filter\Type\AutoRotate; use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; @@ -32,6 +32,6 @@ public function getName(): string */ public function create(array $options): FilterInterface { - return new Grayscale(self::NAME); + return new AutoRotate(self::NAME); } } diff --git a/Factory/Config/Filter/DownscaleFactory.php b/Factory/Config/Filter/DownscaleFactory.php new file mode 100644 index 000000000..a58bd0815 --- /dev/null +++ b/Factory/Config/Filter/DownscaleFactory.php @@ -0,0 +1,40 @@ + Date: Wed, 6 Jun 2018 11:41:30 +0200 Subject: [PATCH 13/30] fixed static tests --- Binary/Locator/FileSystemInsecureLocator.php | 6 +++--- Binary/Locator/FileSystemLocator.php | 2 +- .../Factory/Loader/FileSystemLoaderFactory.php | 2 +- Tests/AbstractTest.php | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Binary/Locator/FileSystemInsecureLocator.php b/Binary/Locator/FileSystemInsecureLocator.php index 0073d1c95..12a90a277 100644 --- a/Binary/Locator/FileSystemInsecureLocator.php +++ b/Binary/Locator/FileSystemInsecureLocator.php @@ -21,9 +21,9 @@ class FileSystemInsecureLocator extends FileSystemLocator */ protected function generateAbsolutePath(string $root, string $path): ?string { - if (false === mb_strpos($path, '..'.DIRECTORY_SEPARATOR) && - false === mb_strpos($path, DIRECTORY_SEPARATOR.'..') && - false !== file_exists($absolute = $root.DIRECTORY_SEPARATOR.$path) + if (false === mb_strpos($path, '..'.\DIRECTORY_SEPARATOR) && + false === mb_strpos($path, \DIRECTORY_SEPARATOR.'..') && + false !== file_exists($absolute = $root.\DIRECTORY_SEPARATOR.$path) ) { return $absolute; } diff --git a/Binary/Locator/FileSystemLocator.php b/Binary/Locator/FileSystemLocator.php index e7eb1256d..4b3dd8288 100644 --- a/Binary/Locator/FileSystemLocator.php +++ b/Binary/Locator/FileSystemLocator.php @@ -60,7 +60,7 @@ public function locate(string $path): string */ protected function generateAbsolutePath(string $root, string $path): ?string { - if (false !== $absolute = realpath($root.DIRECTORY_SEPARATOR.$path)) { + if (false !== $absolute = realpath($root.\DIRECTORY_SEPARATOR.$path)) { return $absolute; } diff --git a/DependencyInjection/Factory/Loader/FileSystemLoaderFactory.php b/DependencyInjection/Factory/Loader/FileSystemLoaderFactory.php index f0f36e152..2f511f726 100644 --- a/DependencyInjection/Factory/Loader/FileSystemLoaderFactory.php +++ b/DependencyInjection/Factory/Loader/FileSystemLoaderFactory.php @@ -127,7 +127,7 @@ private function getBundleResourcePaths(ContainerBuilder $container) } return array_map(function ($path) { - return $path.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'public'; + return $path.\DIRECTORY_SEPARATOR.'Resources'.\DIRECTORY_SEPARATOR.'public'; }, $paths); } diff --git a/Tests/AbstractTest.php b/Tests/AbstractTest.php index c70fc2c84..fbd43993b 100644 --- a/Tests/AbstractTest.php +++ b/Tests/AbstractTest.php @@ -50,8 +50,8 @@ abstract class AbstractTest extends TestCase protected function setUp() { - $this->fixturesPath = realpath(__DIR__.DIRECTORY_SEPARATOR.'Fixtures'); - $this->temporaryPath = sys_get_temp_dir().DIRECTORY_SEPARATOR.'liip_imagine_test'; + $this->fixturesPath = realpath(__DIR__.\DIRECTORY_SEPARATOR.'Fixtures'); + $this->temporaryPath = sys_get_temp_dir().\DIRECTORY_SEPARATOR.'liip_imagine_test'; $this->filesystem = new Filesystem(); if ($this->filesystem->exists($this->temporaryPath)) { From 690600073513e394b4248a752dbcdffde989dfe4 Mon Sep 17 00:00:00 2001 From: nrg Date: Wed, 6 Jun 2018 15:13:18 +0200 Subject: [PATCH 14/30] added optional return types, removed unnecessary phpdocs --- Config/Filter/Type/AutoRotate.php | 3 --- Config/Filter/Type/Background.php | 17 +---------------- Config/Filter/Type/Crop.php | 9 --------- Config/Filter/Type/Downscale.php | 11 +---------- Config/Filter/Type/Flip.php | 6 ------ Config/Filter/Type/Grayscale.php | 3 --- Config/Filter/Type/Interlace.php | 6 ------ Config/Filter/Type/Paste.php | 6 ------ Config/Filter/Type/RelativeResize.php | 23 ++++------------------- Config/Filter/Type/Resize.php | 6 ------ Config/Filter/Type/Rotate.php | 6 ------ Config/Filter/Type/Scale.php | 11 +---------- Config/Filter/Type/Strip.php | 3 --- Config/Filter/Type/Thumbnail.php | 23 ++++------------------- Config/Filter/Type/Upscale.php | 11 +---------- Config/Filter/Type/Watermark.php | 14 +------------- 16 files changed, 13 insertions(+), 145 deletions(-) diff --git a/Config/Filter/Type/AutoRotate.php b/Config/Filter/Type/AutoRotate.php index b651bebf2..c2bc221a8 100644 --- a/Config/Filter/Type/AutoRotate.php +++ b/Config/Filter/Type/AutoRotate.php @@ -28,9 +28,6 @@ public function __construct(string $name) $this->name = $name; } - /** - * @return string - */ public function getName(): string { return $this->name; diff --git a/Config/Filter/Type/Background.php b/Config/Filter/Type/Background.php index 0c1a0cbde..55e0f22da 100644 --- a/Config/Filter/Type/Background.php +++ b/Config/Filter/Type/Background.php @@ -61,41 +61,26 @@ public function __construct( $this->size = $size; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return string|null - */ public function getColor(): string { return $this->color; } - /** - * @return string|null - */ public function getTransparency(): string { return $this->transparency; } - /** - * @return string|null - */ - public function getPosition() + public function getPosition(): ?string { return $this->position; } - /** - * @return array - */ public function getSize(): array { return $this->size; diff --git a/Config/Filter/Type/Crop.php b/Config/Filter/Type/Crop.php index dce7a7e8c..a9c98d767 100644 --- a/Config/Filter/Type/Crop.php +++ b/Config/Filter/Type/Crop.php @@ -42,25 +42,16 @@ public function __construct(string $name, array $start, array $size) $this->size = $size; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return array - */ public function getStart(): array { return $this->start; } - /** - * @return array - */ public function getSize(): array { return $this->size; diff --git a/Config/Filter/Type/Downscale.php b/Config/Filter/Type/Downscale.php index 964f85bce..ccee618be 100644 --- a/Config/Filter/Type/Downscale.php +++ b/Config/Filter/Type/Downscale.php @@ -42,26 +42,17 @@ public function __construct(string $name, array $max = [], float $by = null) $this->by = $by; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return array - */ public function getMax(): array { return $this->max; } - /** - * @return float|null - */ - public function getBy() + public function getBy(): ?float { return $this->by; } diff --git a/Config/Filter/Type/Flip.php b/Config/Filter/Type/Flip.php index 66de2d330..a7ca4f874 100644 --- a/Config/Filter/Type/Flip.php +++ b/Config/Filter/Type/Flip.php @@ -35,17 +35,11 @@ public function __construct(string $name, string $axis) $this->axis = $axis; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return string - */ public function getAxis(): string { return $this->axis; diff --git a/Config/Filter/Type/Grayscale.php b/Config/Filter/Type/Grayscale.php index 53a1ad8fc..999d32976 100644 --- a/Config/Filter/Type/Grayscale.php +++ b/Config/Filter/Type/Grayscale.php @@ -28,9 +28,6 @@ public function __construct(string $name) $this->name = $name; } - /** - * @return string - */ public function getName(): string { return $this->name; diff --git a/Config/Filter/Type/Interlace.php b/Config/Filter/Type/Interlace.php index 1fd6fee94..ca38be64b 100644 --- a/Config/Filter/Type/Interlace.php +++ b/Config/Filter/Type/Interlace.php @@ -35,17 +35,11 @@ public function __construct(string $name, string $mode) $this->mode = $mode; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return string - */ public function getMode(): string { return $this->mode; diff --git a/Config/Filter/Type/Paste.php b/Config/Filter/Type/Paste.php index faaec792d..0a15269cf 100644 --- a/Config/Filter/Type/Paste.php +++ b/Config/Filter/Type/Paste.php @@ -35,17 +35,11 @@ public function __construct(string $name, array $start = []) $this->start = $start; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return array - */ public function getStart(): array { return $this->start; diff --git a/Config/Filter/Type/RelativeResize.php b/Config/Filter/Type/RelativeResize.php index 5bcf07d66..0b498da42 100644 --- a/Config/Filter/Type/RelativeResize.php +++ b/Config/Filter/Type/RelativeResize.php @@ -61,42 +61,27 @@ public function __construct( $this->scale = $scale; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return float|null - */ - public function getHeighten() + public function getHeighten(): ?float { return $this->heighten; } - /** - * @return float|null - */ - public function getWiden() + public function getWiden(): ?float { return $this->widen; } - /** - * @return float|null - */ - public function getIncrease() + public function getIncrease(): ?float { return $this->increase; } - /** - * @return float|null - */ - public function getScale() + public function getScale(): ?float { return $this->scale; } diff --git a/Config/Filter/Type/Resize.php b/Config/Filter/Type/Resize.php index 8b5f0a126..41de2c6b9 100644 --- a/Config/Filter/Type/Resize.php +++ b/Config/Filter/Type/Resize.php @@ -35,17 +35,11 @@ public function __construct(string $name, array $size) $this->size = $size; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return array - */ public function getSize(): array { return $this->size; diff --git a/Config/Filter/Type/Rotate.php b/Config/Filter/Type/Rotate.php index ac5bc00c9..474f42191 100644 --- a/Config/Filter/Type/Rotate.php +++ b/Config/Filter/Type/Rotate.php @@ -34,17 +34,11 @@ public function __construct(string $name, int $angle) $this->angle = $angle; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return int - */ public function getAngle(): int { return $this->angle; diff --git a/Config/Filter/Type/Scale.php b/Config/Filter/Type/Scale.php index 482748c6a..bd4c06552 100644 --- a/Config/Filter/Type/Scale.php +++ b/Config/Filter/Type/Scale.php @@ -42,26 +42,17 @@ public function __construct(string $name, array $dimensions, float $to = null) $this->to = $to; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return array - */ public function getDimensions(): array { return $this->dimensions; } - /** - * @return float - */ - public function getTo() + public function getTo(): ?float { return $this->to; } diff --git a/Config/Filter/Type/Strip.php b/Config/Filter/Type/Strip.php index cc26fe43f..49319d186 100644 --- a/Config/Filter/Type/Strip.php +++ b/Config/Filter/Type/Strip.php @@ -28,9 +28,6 @@ public function __construct(string $name) $this->name = $name; } - /** - * @return string - */ public function getName(): string { return $this->name; diff --git a/Config/Filter/Type/Thumbnail.php b/Config/Filter/Type/Thumbnail.php index 98c950f9a..7c162d7ef 100644 --- a/Config/Filter/Type/Thumbnail.php +++ b/Config/Filter/Type/Thumbnail.php @@ -61,42 +61,27 @@ public function __construct( $this->filter = $filter; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return array - */ - public function getSize() + public function getSize(): ?array { return $this->size; } - /** - * @return string|null - */ - public function getMode() + public function getMode(): ?string { return $this->mode; } - /** - * @return bool|null - */ - public function isAllowUpscale() + public function isAllowUpscale(): ?bool { return $this->allowUpscale; } - /** - * @return string|null - */ - public function getFilter() + public function getFilter(): ?string { return $this->filter; } diff --git a/Config/Filter/Type/Upscale.php b/Config/Filter/Type/Upscale.php index bdf53f7da..493b04bea 100644 --- a/Config/Filter/Type/Upscale.php +++ b/Config/Filter/Type/Upscale.php @@ -42,26 +42,17 @@ public function __construct(string $name, array $min = [], float $by = null) $this->by = $by; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return array - */ public function getMin(): array { return $this->min; } - /** - * @return float|null - */ - public function getBy() + public function getBy(): ?float { return $this->by; } diff --git a/Config/Filter/Type/Watermark.php b/Config/Filter/Type/Watermark.php index e1d9713b3..3ec05518d 100644 --- a/Config/Filter/Type/Watermark.php +++ b/Config/Filter/Type/Watermark.php @@ -49,34 +49,22 @@ public function __construct(string $name, string $image, string $position, float $this->size = $size; } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return string - */ public function getImage(): string { return $this->image; } - /** - * @return string - */ public function getPosition(): string { return $this->position; } - /** - * @return float|null - */ - public function getSize() + public function getSize(): ?float { return $this->size; } From 4ea4accee90d0bf3b87edf18796f2685fb03566e Mon Sep 17 00:00:00 2001 From: nrg Date: Wed, 6 Jun 2018 17:15:11 +0200 Subject: [PATCH 15/30] added Point and Size objects --- Config/Filter/Argument/Point.php | 41 ++++++++++++++++++ Config/Filter/Argument/Size.php | 41 ++++++++++++++++++ Config/Filter/Type/Background.php | 9 ++-- Config/Filter/Type/Crop.php | 23 +++++----- Config/Filter/Type/Downscale.php | 13 +++--- Config/Filter/Type/Paste.php | 9 ++-- Config/Filter/Type/Resize.php | 13 +++--- Config/Filter/Type/Rotate.php | 3 -- Config/Filter/Type/Scale.php | 11 ++--- Config/Filter/Type/Thumbnail.php | 9 ++-- Config/Filter/Type/Upscale.php | 9 ++-- Config/StackCollection.php | 10 ++--- .../Config/Filter/Argument/PointFactory.php | 42 +++++++++++++++++++ .../Config/Filter/Argument/SizeFactory.php | 42 +++++++++++++++++++ Factory/Config/Filter/BackgroundFactory.php | 13 +++++- Factory/Config/Filter/CropFactory.php | 24 ++++++++++- Factory/Config/Filter/DownscaleFactory.php | 13 +++++- Factory/Config/Filter/PasteFactory.php | 18 +++++--- .../Config/Filter/RelativeResizeFactory.php | 8 ++-- Factory/Config/Filter/ResizeFactory.php | 18 +++++--- Factory/Config/Filter/ScaleFactory.php | 13 +++++- Factory/Config/Filter/ThumbnailFactory.php | 13 +++++- Factory/Config/Filter/UpscaleFactory.php | 13 +++++- Resources/config/imagine.xml | 42 +++++++++++++++++-- Tests/Config/FilterSetCollectionTest.php | 6 +-- 25 files changed, 371 insertions(+), 85 deletions(-) create mode 100644 Config/Filter/Argument/Point.php create mode 100644 Config/Filter/Argument/Size.php create mode 100644 Factory/Config/Filter/Argument/PointFactory.php create mode 100644 Factory/Config/Filter/Argument/SizeFactory.php diff --git a/Config/Filter/Argument/Point.php b/Config/Filter/Argument/Point.php new file mode 100644 index 000000000..0c1dd6d31 --- /dev/null +++ b/Config/Filter/Argument/Point.php @@ -0,0 +1,41 @@ +x = $x; + $this->y = $y; + } + + public function getX(): ?int + { + return $this->x; + } + + public function getY(): ?int + { + return $this->y; + } +} diff --git a/Config/Filter/Argument/Size.php b/Config/Filter/Argument/Size.php new file mode 100644 index 000000000..2fdee97c1 --- /dev/null +++ b/Config/Filter/Argument/Size.php @@ -0,0 +1,41 @@ +width = $width; + $this->height = $height; + } + + public function getWidth(): ?int + { + return $this->width; + } + + public function getHeight(): ?int + { + return $this->height; + } +} diff --git a/Config/Filter/Type/Background.php b/Config/Filter/Type/Background.php index 55e0f22da..215e4c63f 100644 --- a/Config/Filter/Type/Background.php +++ b/Config/Filter/Type/Background.php @@ -11,6 +11,7 @@ namespace Liip\ImagineBundle\Config\Filter\Type; +use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; final class Background implements FilterInterface @@ -36,7 +37,7 @@ final class Background implements FilterInterface private $position; /** - * @var array + * @var Size */ private $size; @@ -45,14 +46,14 @@ final class Background implements FilterInterface * @param string|null $color * @param string|null $transparency * @param string|null $position - * @param array $size + * @param Size $size */ public function __construct( string $name, string $color = null, string $transparency = null, string $position = null, - array $size = [] + Size $size ) { $this->name = $name; $this->color = $color; @@ -81,7 +82,7 @@ public function getPosition(): ?string return $this->position; } - public function getSize(): array + public function getSize(): Size { return $this->size; } diff --git a/Config/Filter/Type/Crop.php b/Config/Filter/Type/Crop.php index a9c98d767..66f5bd11b 100644 --- a/Config/Filter/Type/Crop.php +++ b/Config/Filter/Type/Crop.php @@ -11,6 +11,8 @@ namespace Liip\ImagineBundle\Config\Filter\Type; +use Liip\ImagineBundle\Config\Filter\Argument\Point; +use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; final class Crop implements FilterInterface @@ -21,24 +23,19 @@ final class Crop implements FilterInterface private $name; /** - * @var array + * @var Point */ - private $start; + private $startPoint; /** - * @var array + * @var Size */ private $size; - /** - * @param string $name - * @param array $start start coordinates {x,y} - * @param array $size size parameters {width, height} - */ - public function __construct(string $name, array $start, array $size) + public function __construct(string $name, Point $startPoint, Size $size) { $this->name = $name; - $this->start = $start; + $this->startPoint = $startPoint; $this->size = $size; } @@ -47,12 +44,12 @@ public function getName(): string return $this->name; } - public function getStart(): array + public function getStartPoint(): Point { - return $this->start; + return $this->startPoint; } - public function getSize(): array + public function getSize(): Size { return $this->size; } diff --git a/Config/Filter/Type/Downscale.php b/Config/Filter/Type/Downscale.php index ccee618be..d68390461 100644 --- a/Config/Filter/Type/Downscale.php +++ b/Config/Filter/Type/Downscale.php @@ -11,6 +11,7 @@ namespace Liip\ImagineBundle\Config\Filter\Type; +use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; final class Downscale implements FilterInterface @@ -21,7 +22,7 @@ final class Downscale implements FilterInterface private $name; /** - * @var array + * @var Size */ private $max; @@ -31,11 +32,11 @@ final class Downscale implements FilterInterface private $by; /** - * @param string $name - * @param array $max desired max dimensions {width, height} - * @param float $by sets the "ratio multiple" which initiates a proportional scale operation computed by multiplying all image sides by this value + * @param string $name + * @param Size $max + * @param float|null $by sets the "ratio multiple" which initiates a proportional scale operation computed by multiplying all image sides by this value */ - public function __construct(string $name, array $max = [], float $by = null) + public function __construct(string $name, Size $max, float $by = null) { $this->name = $name; $this->max = $max; @@ -47,7 +48,7 @@ public function getName(): string return $this->name; } - public function getMax(): array + public function getMax(): Size { return $this->max; } diff --git a/Config/Filter/Type/Paste.php b/Config/Filter/Type/Paste.php index 0a15269cf..f06826732 100644 --- a/Config/Filter/Type/Paste.php +++ b/Config/Filter/Type/Paste.php @@ -11,6 +11,7 @@ namespace Liip\ImagineBundle\Config\Filter\Type; +use Liip\ImagineBundle\Config\Filter\Argument\Point; use Liip\ImagineBundle\Config\FilterInterface; final class Paste implements FilterInterface @@ -21,15 +22,15 @@ final class Paste implements FilterInterface private $name; /** - * @var array + * @var Point */ private $start; /** * @param string $name - * @param array $start + * @param Point $start */ - public function __construct(string $name, array $start = []) + public function __construct(string $name, Point $start) { $this->name = $name; $this->start = $start; @@ -40,7 +41,7 @@ public function getName(): string return $this->name; } - public function getStart(): array + public function getStart(): Point { return $this->start; } diff --git a/Config/Filter/Type/Resize.php b/Config/Filter/Type/Resize.php index 41de2c6b9..303d8cb2d 100644 --- a/Config/Filter/Type/Resize.php +++ b/Config/Filter/Type/Resize.php @@ -11,6 +11,7 @@ namespace Liip\ImagineBundle\Config\Filter\Type; +use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; final class Resize implements FilterInterface @@ -21,15 +22,11 @@ final class Resize implements FilterInterface private $name; /** - * @var array + * @var Size */ - private $size = []; + private $size; - /** - * @param string $name - * @param array $size size parameters {width, height} - */ - public function __construct(string $name, array $size) + public function __construct(string $name, Size $size) { $this->name = $name; $this->size = $size; @@ -40,7 +37,7 @@ public function getName(): string return $this->name; } - public function getSize(): array + public function getSize(): Size { return $this->size; } diff --git a/Config/Filter/Type/Rotate.php b/Config/Filter/Type/Rotate.php index 474f42191..8080cf693 100644 --- a/Config/Filter/Type/Rotate.php +++ b/Config/Filter/Type/Rotate.php @@ -25,9 +25,6 @@ final class Rotate implements FilterInterface */ private $angle; - /** - * @param string $name - */ public function __construct(string $name, int $angle) { $this->name = $name; diff --git a/Config/Filter/Type/Scale.php b/Config/Filter/Type/Scale.php index bd4c06552..eb3fcbff2 100644 --- a/Config/Filter/Type/Scale.php +++ b/Config/Filter/Type/Scale.php @@ -11,6 +11,7 @@ namespace Liip\ImagineBundle\Config\Filter\Type; +use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; final class Scale implements FilterInterface @@ -21,9 +22,9 @@ final class Scale implements FilterInterface private $name; /** - * @var array + * @var Size */ - private $dimensions = []; + private $dimensions; /** * @var float @@ -32,10 +33,10 @@ final class Scale implements FilterInterface /** * @param string $name - * @param array $dimensions array containing a width and height integer + * @param Size $dimensions * @param float|null $to proportional scale operation computed by multiplying all image sides by this value */ - public function __construct(string $name, array $dimensions, float $to = null) + public function __construct(string $name, Size $dimensions, float $to = null) { $this->name = $name; $this->dimensions = $dimensions; @@ -47,7 +48,7 @@ public function getName(): string return $this->name; } - public function getDimensions(): array + public function getDimensions(): Size { return $this->dimensions; } diff --git a/Config/Filter/Type/Thumbnail.php b/Config/Filter/Type/Thumbnail.php index 7c162d7ef..8c47a05bf 100644 --- a/Config/Filter/Type/Thumbnail.php +++ b/Config/Filter/Type/Thumbnail.php @@ -11,6 +11,7 @@ namespace Liip\ImagineBundle\Config\Filter\Type; +use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; final class Thumbnail implements FilterInterface @@ -21,7 +22,7 @@ final class Thumbnail implements FilterInterface private $name; /** - * @var array + * @var Size */ private $size; @@ -42,14 +43,14 @@ final class Thumbnail implements FilterInterface /** * @param string $name - * @param array $size size parameters {width, height} + * @param Size $size * @param string|null $mode * @param bool|null $allowUpscale * @param string|null $filter */ public function __construct( string $name, - array $size, + Size $size, string $mode = null, bool $allowUpscale = null, string $filter = null @@ -66,7 +67,7 @@ public function getName(): string return $this->name; } - public function getSize(): ?array + public function getSize(): Size { return $this->size; } diff --git a/Config/Filter/Type/Upscale.php b/Config/Filter/Type/Upscale.php index 493b04bea..1c4e003ff 100644 --- a/Config/Filter/Type/Upscale.php +++ b/Config/Filter/Type/Upscale.php @@ -11,6 +11,7 @@ namespace Liip\ImagineBundle\Config\Filter\Type; +use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; final class Upscale implements FilterInterface @@ -21,7 +22,7 @@ final class Upscale implements FilterInterface private $name; /** - * @var array + * @var Size */ private $min; @@ -32,10 +33,10 @@ final class Upscale implements FilterInterface /** * @param string $name - * @param array $min desired min dimensions {width, height} + * @param Size $min * @param float $by sets the "ratio multiple" which initiates a proportional scale operation computed by multiplying all image sides by this value */ - public function __construct(string $name, array $min = [], float $by = null) + public function __construct(string $name, Size $min, float $by = null) { $this->name = $name; $this->min = $min; @@ -47,7 +48,7 @@ public function getName(): string return $this->name; } - public function getMin(): array + public function getMin(): Size { return $this->min; } diff --git a/Config/StackCollection.php b/Config/StackCollection.php index 45fbc4510..ad9472374 100644 --- a/Config/StackCollection.php +++ b/Config/StackCollection.php @@ -21,7 +21,7 @@ final class StackCollection /** * @var StackBuilderInterface */ - private $filterSetBuilder; + private $stackBuilder; /** * @var array @@ -29,12 +29,12 @@ final class StackCollection private $filtersConfiguration; /** - * @param StackBuilderInterface $filterSetBuilder + * @param StackBuilderInterface $stackBuilder * @param array $filtersConfiguration */ - public function __construct(StackBuilderInterface $filterSetBuilder, array $filtersConfiguration = []) + public function __construct(StackBuilderInterface $stackBuilder, array $filtersConfiguration = []) { - $this->filterSetBuilder = $filterSetBuilder; + $this->stackBuilder = $stackBuilder; $this->filtersConfiguration = $filtersConfiguration; } @@ -48,7 +48,7 @@ public function getFilterSets() } foreach ($this->filtersConfiguration as $filterSetName => $filterSetData) { - $this->filterSets[] = $this->filterSetBuilder->build($filterSetName, $filterSetData); + $this->filterSets[] = $this->stackBuilder->build($filterSetName, $filterSetData); } return $this->filterSets; diff --git a/Factory/Config/Filter/Argument/PointFactory.php b/Factory/Config/Filter/Argument/PointFactory.php new file mode 100644 index 000000000..2936dc5ef --- /dev/null +++ b/Factory/Config/Filter/Argument/PointFactory.php @@ -0,0 +1,42 @@ +sizeFactory = $sizeFactory; + } + /** * {@inheritdoc} */ @@ -35,7 +46,7 @@ public function create(array $options): FilterInterface $color = isset($options['color']) ? $options['color'] : null; $transparency = isset($options['transparency']) ? $options['transparency'] : null; $position = isset($options['position']) ? $options['position'] : null; - $size = isset($options['size']) ? $options['size'] : []; + $size = $this->sizeFactory->createFromOptions($options); return new Background(self::NAME, $color, $transparency, $position, $size); } diff --git a/Factory/Config/Filter/CropFactory.php b/Factory/Config/Filter/CropFactory.php index bc7382b55..0f600f9f4 100644 --- a/Factory/Config/Filter/CropFactory.php +++ b/Factory/Config/Filter/CropFactory.php @@ -13,12 +13,30 @@ use Liip\ImagineBundle\Config\Filter\Type\Crop; use Liip\ImagineBundle\Config\FilterInterface; +use Liip\ImagineBundle\Factory\Config\Filter\Argument\PointFactory; +use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; final class CropFactory implements FilterFactoryInterface { const NAME = 'crop'; + /** + * @var SizeFactory + */ + private $sizeFactory; + + /** + * @var PointFactory + */ + private $pointFactory; + + public function __construct(SizeFactory $sizeFactory, PointFactory $pointFactory) + { + $this->sizeFactory = $sizeFactory; + $this->pointFactory = $pointFactory; + } + /** * {@inheritdoc} */ @@ -32,6 +50,10 @@ public function getName(): string */ public function create(array $options): FilterInterface { - return new Crop(self::NAME, $options['start'], $options['size']); + return new Crop( + self::NAME, + $this->pointFactory->createFromOptions($options, 'start'), + $this->sizeFactory->createFromOptions($options) + ); } } diff --git a/Factory/Config/Filter/DownscaleFactory.php b/Factory/Config/Filter/DownscaleFactory.php index a58bd0815..3b51df17e 100644 --- a/Factory/Config/Filter/DownscaleFactory.php +++ b/Factory/Config/Filter/DownscaleFactory.php @@ -13,12 +13,23 @@ use Liip\ImagineBundle\Config\Filter\Type\Downscale; use Liip\ImagineBundle\Config\FilterInterface; +use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; final class DownscaleFactory implements FilterFactoryInterface { const NAME = 'downscale'; + /** + * @var SizeFactory + */ + private $sizeFactory; + + public function __construct(SizeFactory $sizeFactory) + { + $this->sizeFactory = $sizeFactory; + } + /** * {@inheritdoc} */ @@ -32,7 +43,7 @@ public function getName(): string */ public function create(array $options): FilterInterface { - $max = isset($options['max']) ? $options['max'] : []; + $max = $this->sizeFactory->createFromOptions($options, 'max'); $by = isset($options['by']) ? (float) $options['by'] : null; return new Downscale(self::NAME, $max, $by); diff --git a/Factory/Config/Filter/PasteFactory.php b/Factory/Config/Filter/PasteFactory.php index 6b0a4a7ca..7d391df79 100644 --- a/Factory/Config/Filter/PasteFactory.php +++ b/Factory/Config/Filter/PasteFactory.php @@ -13,12 +13,23 @@ use Liip\ImagineBundle\Config\Filter\Type\Paste; use Liip\ImagineBundle\Config\FilterInterface; +use Liip\ImagineBundle\Factory\Config\Filter\Argument\PointFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; final class PasteFactory implements FilterFactoryInterface { const NAME = 'auto_rotate'; + /** + * @var PointFactory + */ + private $pointFactory; + + public function __construct(PointFactory $pointFactory) + { + $this->pointFactory = $pointFactory; + } + /** * {@inheritdoc} */ @@ -32,11 +43,6 @@ public function getName(): string */ public function create(array $options): FilterInterface { - $start = []; - if (isset($options['start'])) { - $start = $options['start']; - } - - return new Paste(self::NAME, $start); + return new Paste(self::NAME, $this->pointFactory->createFromOptions($options, 'start')); } } diff --git a/Factory/Config/Filter/RelativeResizeFactory.php b/Factory/Config/Filter/RelativeResizeFactory.php index 33156ef9e..0bd035f5d 100644 --- a/Factory/Config/Filter/RelativeResizeFactory.php +++ b/Factory/Config/Filter/RelativeResizeFactory.php @@ -32,10 +32,10 @@ public function getName(): string */ public function create(array $options): FilterInterface { - $heighten = isset($options['heighten']) ? $options['heighten'] : null; - $widen = isset($options['widen']) ? $options['widen'] : null; - $increase = isset($options['increase']) ? $options['increase'] : null; - $scale = isset($options['scale']) ? $options['scale'] : null; + $heighten = $options['heighten'] ?? null; + $widen = $options['widen'] ?? null; + $increase = $options['increase'] ?? null; + $scale = $options['scale'] ?? null; return new RelativeResize(self::NAME, $heighten, $widen, $increase, $scale); } diff --git a/Factory/Config/Filter/ResizeFactory.php b/Factory/Config/Filter/ResizeFactory.php index 15a905e74..9d4384597 100644 --- a/Factory/Config/Filter/ResizeFactory.php +++ b/Factory/Config/Filter/ResizeFactory.php @@ -13,12 +13,23 @@ use Liip\ImagineBundle\Config\Filter\Type\Resize; use Liip\ImagineBundle\Config\FilterInterface; +use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; final class ResizeFactory implements FilterFactoryInterface { const NAME = 'resize'; + /** + * @var SizeFactory + */ + private $sizeFactory; + + public function __construct(SizeFactory $sizeFactory) + { + $this->sizeFactory = $sizeFactory; + } + /** * {@inheritdoc} */ @@ -32,11 +43,6 @@ public function getName(): string */ public function create(array $options): FilterInterface { - $size = []; - if (isset($options['size']) && is_array($options['size'])) { - $size = $options['size']; - } - - return new Resize(self::NAME, $size); + return new Resize(self::NAME, $this->sizeFactory->createFromOptions($options)); } } diff --git a/Factory/Config/Filter/ScaleFactory.php b/Factory/Config/Filter/ScaleFactory.php index 3d8632ea6..a98197665 100644 --- a/Factory/Config/Filter/ScaleFactory.php +++ b/Factory/Config/Filter/ScaleFactory.php @@ -13,12 +13,23 @@ use Liip\ImagineBundle\Config\Filter\Type\Scale; use Liip\ImagineBundle\Config\FilterInterface; +use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; final class ScaleFactory implements FilterFactoryInterface { const NAME = 'scale'; + /** + * @var SizeFactory + */ + private $sizeFactory; + + public function __construct(SizeFactory $sizeFactory) + { + $this->sizeFactory = $sizeFactory; + } + /** * {@inheritdoc} */ @@ -32,7 +43,7 @@ public function getName(): string */ public function create(array $options): FilterInterface { - $dimensions = isset($options['dim']) ? $options['dim'] : []; + $dimensions = $this->sizeFactory->createFromOptions($options, 'dim'); $to = isset($options['to']) ? (float) $options['to'] : null; return new Scale(self::NAME, $dimensions, $to); diff --git a/Factory/Config/Filter/ThumbnailFactory.php b/Factory/Config/Filter/ThumbnailFactory.php index cd9cd4be9..1323fa738 100644 --- a/Factory/Config/Filter/ThumbnailFactory.php +++ b/Factory/Config/Filter/ThumbnailFactory.php @@ -13,12 +13,23 @@ use Liip\ImagineBundle\Config\Filter\Type\Thumbnail; use Liip\ImagineBundle\Config\FilterInterface; +use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; final class ThumbnailFactory implements FilterFactoryInterface { const NAME = 'thumbnail'; + /** + * @var SizeFactory + */ + private $sizeFactory; + + public function __construct(SizeFactory $sizeFactory) + { + $this->sizeFactory = $sizeFactory; + } + /** * {@inheritdoc} */ @@ -32,7 +43,7 @@ public function getName(): string */ public function create(array $options): FilterInterface { - $size = $options['size']; + $size = $this->sizeFactory->createFromOptions($options); $mode = isset($options['mode']) ? $options['mode'] : null; $allowUpscale = isset($options['allow_upscale']) ? $options['allow_upscale'] : null; $filter = isset($options['filter']) ? $options['filter'] : null; diff --git a/Factory/Config/Filter/UpscaleFactory.php b/Factory/Config/Filter/UpscaleFactory.php index a10889b9c..cbb011641 100644 --- a/Factory/Config/Filter/UpscaleFactory.php +++ b/Factory/Config/Filter/UpscaleFactory.php @@ -13,12 +13,23 @@ use Liip\ImagineBundle\Config\Filter\Type\Upscale; use Liip\ImagineBundle\Config\FilterInterface; +use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; final class UpscaleFactory implements FilterFactoryInterface { const NAME = 'upscale'; + /** + * @var SizeFactory + */ + private $sizeFactory; + + public function __construct(SizeFactory $sizeFactory) + { + $this->sizeFactory = $sizeFactory; + } + /** * {@inheritdoc} */ @@ -32,7 +43,7 @@ public function getName(): string */ public function create(array $options): FilterInterface { - $min = isset($options['min']) ? $options['min'] : []; + $min = $this->sizeFactory->createFromOptions($options, 'min'); $by = isset($options['by']) ? (float) $options['by'] : null; return new Upscale(self::NAME, $min, $by); diff --git a/Resources/config/imagine.xml b/Resources/config/imagine.xml index 5dbd16cf7..b99858720 100644 --- a/Resources/config/imagine.xml +++ b/Resources/config/imagine.xml @@ -33,28 +33,62 @@ + + + - - + + + + + + + + + + - + + + + + + + + + + + - + + + + + + + + + + + + + + diff --git a/Tests/Config/FilterSetCollectionTest.php b/Tests/Config/FilterSetCollectionTest.php index 83e2b6d9a..f6e4e6bf2 100644 --- a/Tests/Config/FilterSetCollectionTest.php +++ b/Tests/Config/FilterSetCollectionTest.php @@ -28,13 +28,13 @@ public function testGetFilterSets() $filterSetMock = $this->createMock(StackInterface::class); - $filterSetBuilderMock = $this->createMock(StackBuilderInterface::class); - $filterSetBuilderMock->expects($this->once()) + $stackBuilderMock = $this->createMock(StackBuilderInterface::class); + $stackBuilderMock->expects($this->once()) ->method('build') ->with($filterSetName, $filterSetData) ->will($this->returnValue($filterSetMock)); - $model = new StackCollection($filterSetBuilderMock, [$filterSetName => $filterSetData]); + $model = new StackCollection($stackBuilderMock, [$filterSetName => $filterSetData]); $this->assertSame([$filterSetMock], $model->getFilterSets()); $this->assertSame([$filterSetMock], $model->getFilterSets()); } From ebc5744a95a1cc4b34e545f3919372ee3f6ce770 Mon Sep 17 00:00:00 2001 From: nrg Date: Wed, 6 Jun 2018 17:19:56 +0200 Subject: [PATCH 16/30] replaced trivial ternary operations with null coalesce operator --- Factory/Config/Filter/BackgroundFactory.php | 6 +++--- Factory/Config/Filter/InterlaceFactory.php | 5 +---- Factory/Config/Filter/ThumbnailFactory.php | 6 +++--- Factory/Config/Filter/WatermarkFactory.php | 2 +- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/Factory/Config/Filter/BackgroundFactory.php b/Factory/Config/Filter/BackgroundFactory.php index b19d0bee1..129fd82b1 100644 --- a/Factory/Config/Filter/BackgroundFactory.php +++ b/Factory/Config/Filter/BackgroundFactory.php @@ -43,9 +43,9 @@ public function getName(): string */ public function create(array $options): FilterInterface { - $color = isset($options['color']) ? $options['color'] : null; - $transparency = isset($options['transparency']) ? $options['transparency'] : null; - $position = isset($options['position']) ? $options['position'] : null; + $color = $options['color'] ?? null; + $transparency = $options['transparency'] ?? null; + $position = $options['position'] ?? null; $size = $this->sizeFactory->createFromOptions($options); return new Background(self::NAME, $color, $transparency, $position, $size); diff --git a/Factory/Config/Filter/InterlaceFactory.php b/Factory/Config/Filter/InterlaceFactory.php index cbffb917a..0d6823779 100644 --- a/Factory/Config/Filter/InterlaceFactory.php +++ b/Factory/Config/Filter/InterlaceFactory.php @@ -33,10 +33,7 @@ public function getName(): string */ public function create(array $options): FilterInterface { - $mode = ImageInterface::INTERLACE_LINE; - if (!empty($options['mode'])) { - $mode = $options['mode']; - } + $mode = $options['mode'] ?? ImageInterface::INTERLACE_LINE; return new Interlace(self::NAME, $mode); } diff --git a/Factory/Config/Filter/ThumbnailFactory.php b/Factory/Config/Filter/ThumbnailFactory.php index 1323fa738..31b52b797 100644 --- a/Factory/Config/Filter/ThumbnailFactory.php +++ b/Factory/Config/Filter/ThumbnailFactory.php @@ -44,9 +44,9 @@ public function getName(): string public function create(array $options): FilterInterface { $size = $this->sizeFactory->createFromOptions($options); - $mode = isset($options['mode']) ? $options['mode'] : null; - $allowUpscale = isset($options['allow_upscale']) ? $options['allow_upscale'] : null; - $filter = isset($options['filter']) ? $options['filter'] : null; + $mode = $options['mode'] ?? null; + $allowUpscale = $options['allow_upscale'] ?? null; + $filter = $options['filter'] ?? null; return new Thumbnail(self::NAME, $size, $mode, $allowUpscale, $filter); } diff --git a/Factory/Config/Filter/WatermarkFactory.php b/Factory/Config/Filter/WatermarkFactory.php index b773436e0..3ffdeeba2 100644 --- a/Factory/Config/Filter/WatermarkFactory.php +++ b/Factory/Config/Filter/WatermarkFactory.php @@ -32,7 +32,7 @@ public function getName(): string */ public function create(array $options): FilterInterface { - $size = isset($options['size']) ? $options['size'] : null; + $size = $options['size'] ?? null; $position = isset($options['position']) ? $options['position'] : 'center'; return new Watermark(self::NAME, $options['image'], $size, $position); From 02e40228d7e7a1fff74d99ea65b80335cc64eac7 Mon Sep 17 00:00:00 2001 From: nrg Date: Wed, 6 Jun 2018 17:45:45 +0200 Subject: [PATCH 17/30] applied PR fixes --- Config/Filter/Type/Background.php | 6 +++--- Factory/Config/StackFactory.php | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Config/Filter/Type/Background.php b/Config/Filter/Type/Background.php index 215e4c63f..ec69141c5 100644 --- a/Config/Filter/Type/Background.php +++ b/Config/Filter/Type/Background.php @@ -43,9 +43,9 @@ final class Background implements FilterInterface /** * @param string $name - * @param string|null $color - * @param string|null $transparency - * @param string|null $position + * @param string|null $color background color HEX value + * @param string|null $transparency possible values 0..100 + * @param string|null $position position of the input image on the newly created background image. Valid values: topleft, top, topright, left, center, right, bottomleft, bottom, and bottomright * @param Size $size */ public function __construct( diff --git a/Factory/Config/StackFactory.php b/Factory/Config/StackFactory.php index 21cd18a84..c32a0b578 100644 --- a/Factory/Config/StackFactory.php +++ b/Factory/Config/StackFactory.php @@ -11,15 +11,16 @@ namespace Liip\ImagineBundle\Factory\Config; +use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Config\Stack; class StackFactory { /** - * @param string $name - * @param string|null $dataLoader - * @param int|null $quality - * @param array $filters + * @param string $name + * @param string|null $dataLoader + * @param int|null $quality + * @param FilterInterface[] $filters * * @return Stack */ From c4923d0bd5ea19d11dae88389b752b62e69dcfd8 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 11 Jun 2018 11:51:57 +0200 Subject: [PATCH 18/30] added @internal to all config-related factories --- Factory/Config/Filter/Argument/PointFactory.php | 3 +++ Factory/Config/Filter/Argument/SizeFactory.php | 3 +++ Factory/Config/Filter/AutoRotateFactory.php | 3 +++ Factory/Config/Filter/BackgroundFactory.php | 3 +++ Factory/Config/Filter/CropFactory.php | 3 +++ Factory/Config/Filter/DownscaleFactory.php | 3 +++ Factory/Config/Filter/FlipFactory.php | 3 +++ Factory/Config/Filter/GrayscaleFactory.php | 3 +++ Factory/Config/Filter/InterlaceFactory.php | 3 +++ Factory/Config/Filter/PasteFactory.php | 3 +++ Factory/Config/Filter/RelativeResizeFactory.php | 3 +++ Factory/Config/Filter/ResizeFactory.php | 3 +++ Factory/Config/Filter/RotateFactory.php | 3 +++ Factory/Config/Filter/ScaleFactory.php | 3 +++ Factory/Config/Filter/StripFactory.php | 3 +++ Factory/Config/Filter/ThumbnailFactory.php | 3 +++ Factory/Config/Filter/UpscaleFactory.php | 3 +++ Factory/Config/Filter/WatermarkFactory.php | 3 +++ Factory/Config/StackFactory.php | 3 +++ 19 files changed, 57 insertions(+) diff --git a/Factory/Config/Filter/Argument/PointFactory.php b/Factory/Config/Filter/Argument/PointFactory.php index 2936dc5ef..c3cfc53db 100644 --- a/Factory/Config/Filter/Argument/PointFactory.php +++ b/Factory/Config/Filter/Argument/PointFactory.php @@ -14,6 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Point; use Liip\ImagineBundle\Exception\InvalidArgumentException; +/** + * @internal + */ final class PointFactory { public function create($x = null, $y = null): Point diff --git a/Factory/Config/Filter/Argument/SizeFactory.php b/Factory/Config/Filter/Argument/SizeFactory.php index 87d35a713..21f93da0c 100644 --- a/Factory/Config/Filter/Argument/SizeFactory.php +++ b/Factory/Config/Filter/Argument/SizeFactory.php @@ -14,6 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Exception\InvalidArgumentException; +/** + * @internal + */ final class SizeFactory { public function create(int $width = null, int $height = null): Size diff --git a/Factory/Config/Filter/AutoRotateFactory.php b/Factory/Config/Filter/AutoRotateFactory.php index 0966e9aa7..e69ed4603 100644 --- a/Factory/Config/Filter/AutoRotateFactory.php +++ b/Factory/Config/Filter/AutoRotateFactory.php @@ -15,6 +15,9 @@ use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class AutoRotateFactory implements FilterFactoryInterface { const NAME = 'auto_rotate'; diff --git a/Factory/Config/Filter/BackgroundFactory.php b/Factory/Config/Filter/BackgroundFactory.php index 129fd82b1..9b7683c21 100644 --- a/Factory/Config/Filter/BackgroundFactory.php +++ b/Factory/Config/Filter/BackgroundFactory.php @@ -16,6 +16,9 @@ use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class BackgroundFactory implements FilterFactoryInterface { const NAME = 'background'; diff --git a/Factory/Config/Filter/CropFactory.php b/Factory/Config/Filter/CropFactory.php index 0f600f9f4..8a699439c 100644 --- a/Factory/Config/Filter/CropFactory.php +++ b/Factory/Config/Filter/CropFactory.php @@ -17,6 +17,9 @@ use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class CropFactory implements FilterFactoryInterface { const NAME = 'crop'; diff --git a/Factory/Config/Filter/DownscaleFactory.php b/Factory/Config/Filter/DownscaleFactory.php index 3b51df17e..ee9284983 100644 --- a/Factory/Config/Filter/DownscaleFactory.php +++ b/Factory/Config/Filter/DownscaleFactory.php @@ -16,6 +16,9 @@ use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class DownscaleFactory implements FilterFactoryInterface { const NAME = 'downscale'; diff --git a/Factory/Config/Filter/FlipFactory.php b/Factory/Config/Filter/FlipFactory.php index a50c8207b..fbc653ed8 100644 --- a/Factory/Config/Filter/FlipFactory.php +++ b/Factory/Config/Filter/FlipFactory.php @@ -15,6 +15,9 @@ use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class FlipFactory implements FilterFactoryInterface { const NAME = 'flip'; diff --git a/Factory/Config/Filter/GrayscaleFactory.php b/Factory/Config/Filter/GrayscaleFactory.php index 566ac1be2..92188b4bb 100644 --- a/Factory/Config/Filter/GrayscaleFactory.php +++ b/Factory/Config/Filter/GrayscaleFactory.php @@ -15,6 +15,9 @@ use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class GrayscaleFactory implements FilterFactoryInterface { const NAME = 'grayscale'; diff --git a/Factory/Config/Filter/InterlaceFactory.php b/Factory/Config/Filter/InterlaceFactory.php index 0d6823779..d928b94ae 100644 --- a/Factory/Config/Filter/InterlaceFactory.php +++ b/Factory/Config/Filter/InterlaceFactory.php @@ -16,6 +16,9 @@ use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class InterlaceFactory implements FilterFactoryInterface { const NAME = 'interlace'; diff --git a/Factory/Config/Filter/PasteFactory.php b/Factory/Config/Filter/PasteFactory.php index 7d391df79..1ce298921 100644 --- a/Factory/Config/Filter/PasteFactory.php +++ b/Factory/Config/Filter/PasteFactory.php @@ -16,6 +16,9 @@ use Liip\ImagineBundle\Factory\Config\Filter\Argument\PointFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class PasteFactory implements FilterFactoryInterface { const NAME = 'auto_rotate'; diff --git a/Factory/Config/Filter/RelativeResizeFactory.php b/Factory/Config/Filter/RelativeResizeFactory.php index 0bd035f5d..dba67175e 100644 --- a/Factory/Config/Filter/RelativeResizeFactory.php +++ b/Factory/Config/Filter/RelativeResizeFactory.php @@ -15,6 +15,9 @@ use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class RelativeResizeFactory implements FilterFactoryInterface { const NAME = 'relative_resize'; diff --git a/Factory/Config/Filter/ResizeFactory.php b/Factory/Config/Filter/ResizeFactory.php index 9d4384597..4a6cc24d7 100644 --- a/Factory/Config/Filter/ResizeFactory.php +++ b/Factory/Config/Filter/ResizeFactory.php @@ -16,6 +16,9 @@ use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class ResizeFactory implements FilterFactoryInterface { const NAME = 'resize'; diff --git a/Factory/Config/Filter/RotateFactory.php b/Factory/Config/Filter/RotateFactory.php index 1a38be8dc..68e6aaa37 100644 --- a/Factory/Config/Filter/RotateFactory.php +++ b/Factory/Config/Filter/RotateFactory.php @@ -15,6 +15,9 @@ use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class RotateFactory implements FilterFactoryInterface { const NAME = 'rotate'; diff --git a/Factory/Config/Filter/ScaleFactory.php b/Factory/Config/Filter/ScaleFactory.php index a98197665..8c75389b3 100644 --- a/Factory/Config/Filter/ScaleFactory.php +++ b/Factory/Config/Filter/ScaleFactory.php @@ -16,6 +16,9 @@ use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class ScaleFactory implements FilterFactoryInterface { const NAME = 'scale'; diff --git a/Factory/Config/Filter/StripFactory.php b/Factory/Config/Filter/StripFactory.php index 3da4bff48..4dee33a13 100644 --- a/Factory/Config/Filter/StripFactory.php +++ b/Factory/Config/Filter/StripFactory.php @@ -15,6 +15,9 @@ use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class StripFactory implements FilterFactoryInterface { const NAME = 'strip'; diff --git a/Factory/Config/Filter/ThumbnailFactory.php b/Factory/Config/Filter/ThumbnailFactory.php index 31b52b797..edacb5a48 100644 --- a/Factory/Config/Filter/ThumbnailFactory.php +++ b/Factory/Config/Filter/ThumbnailFactory.php @@ -16,6 +16,9 @@ use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class ThumbnailFactory implements FilterFactoryInterface { const NAME = 'thumbnail'; diff --git a/Factory/Config/Filter/UpscaleFactory.php b/Factory/Config/Filter/UpscaleFactory.php index cbb011641..e19fe023d 100644 --- a/Factory/Config/Filter/UpscaleFactory.php +++ b/Factory/Config/Filter/UpscaleFactory.php @@ -16,6 +16,9 @@ use Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class UpscaleFactory implements FilterFactoryInterface { const NAME = 'upscale'; diff --git a/Factory/Config/Filter/WatermarkFactory.php b/Factory/Config/Filter/WatermarkFactory.php index 3ffdeeba2..4545fa5d7 100644 --- a/Factory/Config/Filter/WatermarkFactory.php +++ b/Factory/Config/Filter/WatermarkFactory.php @@ -15,6 +15,9 @@ use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Factory\Config\FilterFactoryInterface; +/** + * @internal + */ final class WatermarkFactory implements FilterFactoryInterface { const NAME = 'watermark'; diff --git a/Factory/Config/StackFactory.php b/Factory/Config/StackFactory.php index c32a0b578..6b9e2c9d3 100644 --- a/Factory/Config/StackFactory.php +++ b/Factory/Config/StackFactory.php @@ -14,6 +14,9 @@ use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Config\Stack; +/** + * @internal + */ class StackFactory { /** From c564a62944cb6362c1132328e25a8ae21c93fb48 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 11 Jun 2018 13:54:14 +0200 Subject: [PATCH 19/30] introduced StckFactoryInterface fixed static tests --- Config/StackBuilder.php | 8 +++---- Factory/Config/StackFactory.php | 10 ++------- Factory/Config/StackFactoryInterface.php | 28 ++++++++++++++++++++++++ Tests/Config/FilterSetBuilderTest.php | 3 ++- 4 files changed, 36 insertions(+), 13 deletions(-) create mode 100644 Factory/Config/StackFactoryInterface.php diff --git a/Config/StackBuilder.php b/Config/StackBuilder.php index f01a0bcb3..c6a9dfe19 100644 --- a/Config/StackBuilder.php +++ b/Config/StackBuilder.php @@ -11,12 +11,12 @@ namespace Liip\ImagineBundle\Config; -use Liip\ImagineBundle\Factory\Config\StackFactory; +use Liip\ImagineBundle\Factory\Config\StackFactoryInterface; final class StackBuilder implements StackBuilderInterface { /** - * @var StackFactory + * @var StackFactoryInterface */ private $filterSetFactory; @@ -26,10 +26,10 @@ final class StackBuilder implements StackBuilderInterface private $filterFactoryCollection; /** - * @param StackFactory $filterSetFactory + * @param StackFactoryInterface $filterSetFactory * @param FilterFactoryCollection $filterFactoryCollection */ - public function __construct(StackFactory $filterSetFactory, FilterFactoryCollection $filterFactoryCollection) + public function __construct(StackFactoryInterface $filterSetFactory, FilterFactoryCollection $filterFactoryCollection) { $this->filterSetFactory = $filterSetFactory; $this->filterFactoryCollection = $filterFactoryCollection; diff --git a/Factory/Config/StackFactory.php b/Factory/Config/StackFactory.php index 6b9e2c9d3..cbb602f2b 100644 --- a/Factory/Config/StackFactory.php +++ b/Factory/Config/StackFactory.php @@ -11,21 +11,15 @@ namespace Liip\ImagineBundle\Factory\Config; -use Liip\ImagineBundle\Config\FilterInterface; use Liip\ImagineBundle\Config\Stack; /** * @internal */ -class StackFactory +final class StackFactory implements StackFactoryInterface { /** - * @param string $name - * @param string|null $dataLoader - * @param int|null $quality - * @param FilterInterface[] $filters - * - * @return Stack + * {@inheritdoc} */ public function create(string $name, string $dataLoader = null, int $quality = null, array $filters) { diff --git a/Factory/Config/StackFactoryInterface.php b/Factory/Config/StackFactoryInterface.php new file mode 100644 index 000000000..f3f6abbfb --- /dev/null +++ b/Factory/Config/StackFactoryInterface.php @@ -0,0 +1,28 @@ +filterSetFactoryMock = $this->createMock(StackFactory::class); + $this->filterSetFactoryMock = $this->createMock(StackFactoryInterface::class); $this->filterFactoryCollectionMock = $this->createMock(FilterFactoryCollection::class); $this->model = new StackBuilder($this->filterSetFactoryMock, $this->filterFactoryCollectionMock); } From 997102999c3743c69cbc431490e112d100d8aea0 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 11 Jun 2018 15:17:59 +0200 Subject: [PATCH 20/30] moved filter NAME const from factory to instance --- Config/Filter/Argument/Size.php | 4 ++++ Config/Filter/Type/AutoRotate.php | 20 ++-------------- Config/Filter/Type/Background.php | 15 ++---------- Config/Filter/Type/Crop.php | 15 +++--------- Config/Filter/Type/Downscale.php | 16 +++---------- Config/Filter/Type/FilterAbstract.php | 24 +++++++++++++++++++ Config/Filter/Type/Flip.php | 16 +++---------- Config/Filter/Type/Grayscale.php | 20 ++-------------- Config/Filter/Type/Interlace.php | 19 +++------------ Config/Filter/Type/Paste.php | 19 +++------------ Config/Filter/Type/RelativeResize.php | 21 ++-------------- Config/Filter/Type/Resize.php | 15 +++--------- Config/Filter/Type/Rotate.php | 15 +++--------- Config/Filter/Type/Scale.php | 16 +++---------- Config/Filter/Type/Strip.php | 20 ++-------------- Config/Filter/Type/Thumbnail.php | 21 ++-------------- Config/Filter/Type/Upscale.php | 16 +++---------- Config/Filter/Type/Watermark.php | 21 +++------------- Config/Stack.php | 13 ++-------- Config/StackCollection.php | 4 ---- Config/StackInterface.php | 14 +++-------- Factory/Config/Filter/AutoRotateFactory.php | 6 ++--- Factory/Config/Filter/BackgroundFactory.php | 6 ++--- Factory/Config/Filter/CropFactory.php | 5 +--- Factory/Config/Filter/DownscaleFactory.php | 6 ++--- Factory/Config/Filter/FlipFactory.php | 6 ++--- Factory/Config/Filter/GrayscaleFactory.php | 6 ++--- Factory/Config/Filter/InterlaceFactory.php | 6 ++--- Factory/Config/Filter/PasteFactory.php | 6 ++--- .../Config/Filter/RelativeResizeFactory.php | 6 ++--- Factory/Config/Filter/ResizeFactory.php | 6 ++--- Factory/Config/Filter/RotateFactory.php | 6 ++--- Factory/Config/Filter/ScaleFactory.php | 6 ++--- Factory/Config/Filter/StripFactory.php | 6 ++--- Factory/Config/Filter/ThumbnailFactory.php | 6 ++--- Factory/Config/Filter/UpscaleFactory.php | 6 ++--- Factory/Config/Filter/WatermarkFactory.php | 6 ++--- 37 files changed, 106 insertions(+), 333 deletions(-) create mode 100644 Config/Filter/Type/FilterAbstract.php diff --git a/Config/Filter/Argument/Size.php b/Config/Filter/Argument/Size.php index 2fdee97c1..2340585ec 100644 --- a/Config/Filter/Argument/Size.php +++ b/Config/Filter/Argument/Size.php @@ -23,6 +23,10 @@ final class Size */ private $height; + /** + * To allow keeping aspect ratio, it is allowed to only specify one of width or height. + * It is however not allowed to specify neither dimension. + */ public function __construct(int $width = null, int $height = null) { $this->width = $width; diff --git a/Config/Filter/Type/AutoRotate.php b/Config/Filter/Type/AutoRotate.php index c2bc221a8..755c9d670 100644 --- a/Config/Filter/Type/AutoRotate.php +++ b/Config/Filter/Type/AutoRotate.php @@ -13,23 +13,7 @@ use Liip\ImagineBundle\Config\FilterInterface; -final class AutoRotate implements FilterInterface +final class AutoRotate extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; - - /** - * @param string $name - */ - public function __construct(string $name) - { - $this->name = $name; - } - - public function getName(): string - { - return $this->name; - } + const NAME = 'auto_rotate'; } diff --git a/Config/Filter/Type/Background.php b/Config/Filter/Type/Background.php index ec69141c5..7a2f823bd 100644 --- a/Config/Filter/Type/Background.php +++ b/Config/Filter/Type/Background.php @@ -14,12 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; -final class Background implements FilterInterface +final class Background extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'background'; /** * @var string @@ -42,31 +39,23 @@ final class Background implements FilterInterface private $size; /** - * @param string $name * @param string|null $color background color HEX value * @param string|null $transparency possible values 0..100 * @param string|null $position position of the input image on the newly created background image. Valid values: topleft, top, topright, left, center, right, bottomleft, bottom, and bottomright * @param Size $size */ public function __construct( - string $name, string $color = null, string $transparency = null, string $position = null, Size $size ) { - $this->name = $name; $this->color = $color; $this->transparency = $transparency; $this->position = $position; $this->size = $size; } - public function getName(): string - { - return $this->name; - } - public function getColor(): string { return $this->color; diff --git a/Config/Filter/Type/Crop.php b/Config/Filter/Type/Crop.php index 66f5bd11b..20a9551c7 100644 --- a/Config/Filter/Type/Crop.php +++ b/Config/Filter/Type/Crop.php @@ -15,12 +15,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; -final class Crop implements FilterInterface +final class Crop extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'crop'; /** * @var Point @@ -32,18 +29,12 @@ final class Crop implements FilterInterface */ private $size; - public function __construct(string $name, Point $startPoint, Size $size) + public function __construct(Point $startPoint, Size $size) { - $this->name = $name; $this->startPoint = $startPoint; $this->size = $size; } - public function getName(): string - { - return $this->name; - } - public function getStartPoint(): Point { return $this->startPoint; diff --git a/Config/Filter/Type/Downscale.php b/Config/Filter/Type/Downscale.php index d68390461..d5658b820 100644 --- a/Config/Filter/Type/Downscale.php +++ b/Config/Filter/Type/Downscale.php @@ -14,12 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; -final class Downscale implements FilterInterface +final class Downscale extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'downscale'; /** * @var Size @@ -32,22 +29,15 @@ final class Downscale implements FilterInterface private $by; /** - * @param string $name * @param Size $max * @param float|null $by sets the "ratio multiple" which initiates a proportional scale operation computed by multiplying all image sides by this value */ - public function __construct(string $name, Size $max, float $by = null) + public function __construct(Size $max, float $by = null) { - $this->name = $name; $this->max = $max; $this->by = $by; } - public function getName(): string - { - return $this->name; - } - public function getMax(): Size { return $this->max; diff --git a/Config/Filter/Type/FilterAbstract.php b/Config/Filter/Type/FilterAbstract.php new file mode 100644 index 000000000..fe06216cd --- /dev/null +++ b/Config/Filter/Type/FilterAbstract.php @@ -0,0 +1,24 @@ +name = $name; $this->axis = $axis; } - public function getName(): string - { - return $this->name; - } - public function getAxis(): string { return $this->axis; diff --git a/Config/Filter/Type/Grayscale.php b/Config/Filter/Type/Grayscale.php index 999d32976..5a3ae96fa 100644 --- a/Config/Filter/Type/Grayscale.php +++ b/Config/Filter/Type/Grayscale.php @@ -13,23 +13,7 @@ use Liip\ImagineBundle\Config\FilterInterface; -final class Grayscale implements FilterInterface +final class Grayscale extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; - - /** - * @param string $name - */ - public function __construct(string $name) - { - $this->name = $name; - } - - public function getName(): string - { - return $this->name; - } + const NAME = 'grayscale'; } diff --git a/Config/Filter/Type/Interlace.php b/Config/Filter/Type/Interlace.php index ca38be64b..dd962af25 100644 --- a/Config/Filter/Type/Interlace.php +++ b/Config/Filter/Type/Interlace.php @@ -13,33 +13,20 @@ use Liip\ImagineBundle\Config\FilterInterface; -final class Interlace implements FilterInterface +final class Interlace extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'interlace'; /** * @var string */ private $mode; - /** - * @param string $name - * @param string $mode - */ - public function __construct(string $name, string $mode) + public function __construct(string $mode) { - $this->name = $name; $this->mode = $mode; } - public function getName(): string - { - return $this->name; - } - public function getMode(): string { return $this->mode; diff --git a/Config/Filter/Type/Paste.php b/Config/Filter/Type/Paste.php index f06826732..78f26f6af 100644 --- a/Config/Filter/Type/Paste.php +++ b/Config/Filter/Type/Paste.php @@ -14,33 +14,20 @@ use Liip\ImagineBundle\Config\Filter\Argument\Point; use Liip\ImagineBundle\Config\FilterInterface; -final class Paste implements FilterInterface +final class Paste extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'auto_rotate'; /** * @var Point */ private $start; - /** - * @param string $name - * @param Point $start - */ - public function __construct(string $name, Point $start) + public function __construct(Point $start) { - $this->name = $name; $this->start = $start; } - public function getName(): string - { - return $this->name; - } - public function getStart(): Point { return $this->start; diff --git a/Config/Filter/Type/RelativeResize.php b/Config/Filter/Type/RelativeResize.php index 0b498da42..6ae5ce41e 100644 --- a/Config/Filter/Type/RelativeResize.php +++ b/Config/Filter/Type/RelativeResize.php @@ -13,12 +13,9 @@ use Liip\ImagineBundle\Config\FilterInterface; -final class RelativeResize implements FilterInterface +final class RelativeResize extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'relative_resize'; /** * @var float @@ -40,32 +37,18 @@ final class RelativeResize implements FilterInterface */ private $scale; - /** - * @param string $name - * @param float|null $heighten - * @param float|null $widen - * @param float|null $increase - * @param float|null $scale - */ public function __construct( - string $name, float $heighten = null, float $widen = null, float $increase = null, float $scale = null ) { - $this->name = $name; $this->heighten = $heighten; $this->widen = $widen; $this->increase = $increase; $this->scale = $scale; } - public function getName(): string - { - return $this->name; - } - public function getHeighten(): ?float { return $this->heighten; diff --git a/Config/Filter/Type/Resize.php b/Config/Filter/Type/Resize.php index 303d8cb2d..9e15944f0 100644 --- a/Config/Filter/Type/Resize.php +++ b/Config/Filter/Type/Resize.php @@ -14,29 +14,20 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; -final class Resize implements FilterInterface +final class Resize extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'resize'; /** * @var Size */ private $size; - public function __construct(string $name, Size $size) + public function __construct(Size $size) { - $this->name = $name; $this->size = $size; } - public function getName(): string - { - return $this->name; - } - public function getSize(): Size { return $this->size; diff --git a/Config/Filter/Type/Rotate.php b/Config/Filter/Type/Rotate.php index 8080cf693..1855d8ea9 100644 --- a/Config/Filter/Type/Rotate.php +++ b/Config/Filter/Type/Rotate.php @@ -13,29 +13,20 @@ use Liip\ImagineBundle\Config\FilterInterface; -final class Rotate implements FilterInterface +final class Rotate extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'rotate'; /** * @var int */ private $angle; - public function __construct(string $name, int $angle) + public function __construct(int $angle) { - $this->name = $name; $this->angle = $angle; } - public function getName(): string - { - return $this->name; - } - public function getAngle(): int { return $this->angle; diff --git a/Config/Filter/Type/Scale.php b/Config/Filter/Type/Scale.php index eb3fcbff2..639502bdb 100644 --- a/Config/Filter/Type/Scale.php +++ b/Config/Filter/Type/Scale.php @@ -14,12 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; -final class Scale implements FilterInterface +final class Scale extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'scale'; /** * @var Size @@ -32,22 +29,15 @@ final class Scale implements FilterInterface private $to; /** - * @param string $name * @param Size $dimensions * @param float|null $to proportional scale operation computed by multiplying all image sides by this value */ - public function __construct(string $name, Size $dimensions, float $to = null) + public function __construct(Size $dimensions, float $to = null) { - $this->name = $name; $this->dimensions = $dimensions; $this->to = $to; } - public function getName(): string - { - return $this->name; - } - public function getDimensions(): Size { return $this->dimensions; diff --git a/Config/Filter/Type/Strip.php b/Config/Filter/Type/Strip.php index 49319d186..db72db6a5 100644 --- a/Config/Filter/Type/Strip.php +++ b/Config/Filter/Type/Strip.php @@ -13,23 +13,7 @@ use Liip\ImagineBundle\Config\FilterInterface; -final class Strip implements FilterInterface +final class Strip extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; - - /** - * @param string $name - */ - public function __construct(string $name) - { - $this->name = $name; - } - - public function getName(): string - { - return $this->name; - } + const NAME = 'strip'; } diff --git a/Config/Filter/Type/Thumbnail.php b/Config/Filter/Type/Thumbnail.php index 8c47a05bf..65012aa64 100644 --- a/Config/Filter/Type/Thumbnail.php +++ b/Config/Filter/Type/Thumbnail.php @@ -14,12 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; -final class Thumbnail implements FilterInterface +final class Thumbnail extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'thumbnail'; /** * @var Size @@ -41,32 +38,18 @@ final class Thumbnail implements FilterInterface */ private $filter; - /** - * @param string $name - * @param Size $size - * @param string|null $mode - * @param bool|null $allowUpscale - * @param string|null $filter - */ public function __construct( - string $name, Size $size, string $mode = null, bool $allowUpscale = null, string $filter = null ) { - $this->name = $name; $this->size = $size; $this->mode = $mode; $this->allowUpscale = $allowUpscale; $this->filter = $filter; } - public function getName(): string - { - return $this->name; - } - public function getSize(): Size { return $this->size; diff --git a/Config/Filter/Type/Upscale.php b/Config/Filter/Type/Upscale.php index 1c4e003ff..cecb2459a 100644 --- a/Config/Filter/Type/Upscale.php +++ b/Config/Filter/Type/Upscale.php @@ -14,12 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; -final class Upscale implements FilterInterface +final class Upscale extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'upscale'; /** * @var Size @@ -32,22 +29,15 @@ final class Upscale implements FilterInterface private $by; /** - * @param string $name * @param Size $min * @param float $by sets the "ratio multiple" which initiates a proportional scale operation computed by multiplying all image sides by this value */ - public function __construct(string $name, Size $min, float $by = null) + public function __construct(Size $min, float $by = null) { - $this->name = $name; $this->min = $min; $this->by = $by; } - public function getName(): string - { - return $this->name; - } - public function getMin(): Size { return $this->min; diff --git a/Config/Filter/Type/Watermark.php b/Config/Filter/Type/Watermark.php index 3ec05518d..3859be210 100644 --- a/Config/Filter/Type/Watermark.php +++ b/Config/Filter/Type/Watermark.php @@ -13,12 +13,9 @@ use Liip\ImagineBundle\Config\FilterInterface; -final class Watermark implements FilterInterface +final class Watermark extends FilterAbstract implements FilterInterface { - /** - * @var string - */ - private $name; + const NAME = 'watermark'; /** * @var string @@ -35,25 +32,13 @@ final class Watermark implements FilterInterface */ private $size; - /** - * @param string $name - * @param string $image - * @param string $position - * @param float|null $size - */ - public function __construct(string $name, string $image, string $position, float $size = null) + public function __construct(string $image, string $position, float $size = null) { - $this->name = $name; $this->image = $image; $this->position = $position; $this->size = $size; } - public function getName(): string - { - return $this->name; - } - public function getImage(): string { return $this->image; diff --git a/Config/Stack.php b/Config/Stack.php index 2deb7c450..d206c6823 100644 --- a/Config/Stack.php +++ b/Config/Stack.php @@ -49,26 +49,17 @@ public function __construct(string $name, string $dataLoader = null, int $qualit $this->setFilters($filters); } - /** - * @return string - */ public function getName(): string { return $this->name; } - /** - * @return string|null - */ - public function getDataLoader() + public function getDataLoader(): ?string { return $this->dataLoader; } - /** - * @return int|null - */ - public function getQuality() + public function getQuality(): ?int { return $this->quality; } diff --git a/Config/StackCollection.php b/Config/StackCollection.php index ad9472374..913d3bc0d 100644 --- a/Config/StackCollection.php +++ b/Config/StackCollection.php @@ -28,10 +28,6 @@ final class StackCollection */ private $filtersConfiguration; - /** - * @param StackBuilderInterface $stackBuilder - * @param array $filtersConfiguration - */ public function __construct(StackBuilderInterface $stackBuilder, array $filtersConfiguration = []) { $this->stackBuilder = $stackBuilder; diff --git a/Config/StackInterface.php b/Config/StackInterface.php index 0dbd5482b..7316a147c 100644 --- a/Config/StackInterface.php +++ b/Config/StackInterface.php @@ -13,20 +13,12 @@ interface StackInterface { - /** - * @return string - */ + public function getName(): string; - /** - * @return string|null - */ - public function getDataLoader(); + public function getDataLoader(): ?string; - /** - * @return int|null - */ - public function getQuality(); + public function getQuality(): ?int; /** * @return FilterInterface[] diff --git a/Factory/Config/Filter/AutoRotateFactory.php b/Factory/Config/Filter/AutoRotateFactory.php index e69ed4603..b6d79130a 100644 --- a/Factory/Config/Filter/AutoRotateFactory.php +++ b/Factory/Config/Filter/AutoRotateFactory.php @@ -20,14 +20,12 @@ */ final class AutoRotateFactory implements FilterFactoryInterface { - const NAME = 'auto_rotate'; - /** * {@inheritdoc} */ public function getName(): string { - return self::NAME; + return AutoRotate::NAME; } /** @@ -35,6 +33,6 @@ public function getName(): string */ public function create(array $options): FilterInterface { - return new AutoRotate(self::NAME); + return new AutoRotate(); } } diff --git a/Factory/Config/Filter/BackgroundFactory.php b/Factory/Config/Filter/BackgroundFactory.php index 9b7683c21..35092570f 100644 --- a/Factory/Config/Filter/BackgroundFactory.php +++ b/Factory/Config/Filter/BackgroundFactory.php @@ -21,8 +21,6 @@ */ final class BackgroundFactory implements FilterFactoryInterface { - const NAME = 'background'; - /** * @var SizeFactory */ @@ -38,7 +36,7 @@ public function __construct(SizeFactory $sizeFactory) */ public function getName(): string { - return self::NAME; + return Background::NAME; } /** @@ -51,6 +49,6 @@ public function create(array $options): FilterInterface $position = $options['position'] ?? null; $size = $this->sizeFactory->createFromOptions($options); - return new Background(self::NAME, $color, $transparency, $position, $size); + return new Background($color, $transparency, $position, $size); } } diff --git a/Factory/Config/Filter/CropFactory.php b/Factory/Config/Filter/CropFactory.php index 8a699439c..5fdbe9d96 100644 --- a/Factory/Config/Filter/CropFactory.php +++ b/Factory/Config/Filter/CropFactory.php @@ -22,8 +22,6 @@ */ final class CropFactory implements FilterFactoryInterface { - const NAME = 'crop'; - /** * @var SizeFactory */ @@ -45,7 +43,7 @@ public function __construct(SizeFactory $sizeFactory, PointFactory $pointFactory */ public function getName(): string { - return self::NAME; + return Crop::NAME; } /** @@ -54,7 +52,6 @@ public function getName(): string public function create(array $options): FilterInterface { return new Crop( - self::NAME, $this->pointFactory->createFromOptions($options, 'start'), $this->sizeFactory->createFromOptions($options) ); diff --git a/Factory/Config/Filter/DownscaleFactory.php b/Factory/Config/Filter/DownscaleFactory.php index ee9284983..b1618aa13 100644 --- a/Factory/Config/Filter/DownscaleFactory.php +++ b/Factory/Config/Filter/DownscaleFactory.php @@ -21,8 +21,6 @@ */ final class DownscaleFactory implements FilterFactoryInterface { - const NAME = 'downscale'; - /** * @var SizeFactory */ @@ -38,7 +36,7 @@ public function __construct(SizeFactory $sizeFactory) */ public function getName(): string { - return self::NAME; + return Downscale::NAME; } /** @@ -49,6 +47,6 @@ public function create(array $options): FilterInterface $max = $this->sizeFactory->createFromOptions($options, 'max'); $by = isset($options['by']) ? (float) $options['by'] : null; - return new Downscale(self::NAME, $max, $by); + return new Downscale($max, $by); } } diff --git a/Factory/Config/Filter/FlipFactory.php b/Factory/Config/Filter/FlipFactory.php index fbc653ed8..a406abfb4 100644 --- a/Factory/Config/Filter/FlipFactory.php +++ b/Factory/Config/Filter/FlipFactory.php @@ -20,14 +20,12 @@ */ final class FlipFactory implements FilterFactoryInterface { - const NAME = 'flip'; - /** * {@inheritdoc} */ public function getName(): string { - return self::NAME; + return Flip::NAME; } /** @@ -35,6 +33,6 @@ public function getName(): string */ public function create(array $options): FilterInterface { - return new Flip(self::NAME, $options['axis']); + return new Flip($options['axis']); } } diff --git a/Factory/Config/Filter/GrayscaleFactory.php b/Factory/Config/Filter/GrayscaleFactory.php index 92188b4bb..ae45c0dc2 100644 --- a/Factory/Config/Filter/GrayscaleFactory.php +++ b/Factory/Config/Filter/GrayscaleFactory.php @@ -20,14 +20,12 @@ */ final class GrayscaleFactory implements FilterFactoryInterface { - const NAME = 'grayscale'; - /** * {@inheritdoc} */ public function getName(): string { - return self::NAME; + return Grayscale::NAME; } /** @@ -35,6 +33,6 @@ public function getName(): string */ public function create(array $options): FilterInterface { - return new Grayscale(self::NAME); + return new Grayscale(); } } diff --git a/Factory/Config/Filter/InterlaceFactory.php b/Factory/Config/Filter/InterlaceFactory.php index d928b94ae..aa2d96902 100644 --- a/Factory/Config/Filter/InterlaceFactory.php +++ b/Factory/Config/Filter/InterlaceFactory.php @@ -21,14 +21,12 @@ */ final class InterlaceFactory implements FilterFactoryInterface { - const NAME = 'interlace'; - /** * {@inheritdoc} */ public function getName(): string { - return self::NAME; + return Interlace::NAME; } /** @@ -38,6 +36,6 @@ public function create(array $options): FilterInterface { $mode = $options['mode'] ?? ImageInterface::INTERLACE_LINE; - return new Interlace(self::NAME, $mode); + return new Interlace($mode); } } diff --git a/Factory/Config/Filter/PasteFactory.php b/Factory/Config/Filter/PasteFactory.php index 1ce298921..636823f1b 100644 --- a/Factory/Config/Filter/PasteFactory.php +++ b/Factory/Config/Filter/PasteFactory.php @@ -21,8 +21,6 @@ */ final class PasteFactory implements FilterFactoryInterface { - const NAME = 'auto_rotate'; - /** * @var PointFactory */ @@ -38,7 +36,7 @@ public function __construct(PointFactory $pointFactory) */ public function getName(): string { - return self::NAME; + return Paste::NAME; } /** @@ -46,6 +44,6 @@ public function getName(): string */ public function create(array $options): FilterInterface { - return new Paste(self::NAME, $this->pointFactory->createFromOptions($options, 'start')); + return new Paste($this->pointFactory->createFromOptions($options, 'start')); } } diff --git a/Factory/Config/Filter/RelativeResizeFactory.php b/Factory/Config/Filter/RelativeResizeFactory.php index dba67175e..a73de7d92 100644 --- a/Factory/Config/Filter/RelativeResizeFactory.php +++ b/Factory/Config/Filter/RelativeResizeFactory.php @@ -20,14 +20,12 @@ */ final class RelativeResizeFactory implements FilterFactoryInterface { - const NAME = 'relative_resize'; - /** * {@inheritdoc} */ public function getName(): string { - return self::NAME; + return RelativeResize::NAME; } /** @@ -40,6 +38,6 @@ public function create(array $options): FilterInterface $increase = $options['increase'] ?? null; $scale = $options['scale'] ?? null; - return new RelativeResize(self::NAME, $heighten, $widen, $increase, $scale); + return new RelativeResize($heighten, $widen, $increase, $scale); } } diff --git a/Factory/Config/Filter/ResizeFactory.php b/Factory/Config/Filter/ResizeFactory.php index 4a6cc24d7..a05a8d098 100644 --- a/Factory/Config/Filter/ResizeFactory.php +++ b/Factory/Config/Filter/ResizeFactory.php @@ -21,8 +21,6 @@ */ final class ResizeFactory implements FilterFactoryInterface { - const NAME = 'resize'; - /** * @var SizeFactory */ @@ -38,7 +36,7 @@ public function __construct(SizeFactory $sizeFactory) */ public function getName(): string { - return self::NAME; + return Resize::NAME; } /** @@ -46,6 +44,6 @@ public function getName(): string */ public function create(array $options): FilterInterface { - return new Resize(self::NAME, $this->sizeFactory->createFromOptions($options)); + return new Resize($this->sizeFactory->createFromOptions($options)); } } diff --git a/Factory/Config/Filter/RotateFactory.php b/Factory/Config/Filter/RotateFactory.php index 68e6aaa37..f6f9801d6 100644 --- a/Factory/Config/Filter/RotateFactory.php +++ b/Factory/Config/Filter/RotateFactory.php @@ -20,14 +20,12 @@ */ final class RotateFactory implements FilterFactoryInterface { - const NAME = 'rotate'; - /** * {@inheritdoc} */ public function getName(): string { - return self::NAME; + return Rotate::NAME; } /** @@ -37,6 +35,6 @@ public function create(array $options): FilterInterface { $angle = isset($options['angle']) ? (int) $options['angle'] : 0; - return new Rotate(self::NAME, $angle); + return new Rotate($angle); } } diff --git a/Factory/Config/Filter/ScaleFactory.php b/Factory/Config/Filter/ScaleFactory.php index 8c75389b3..b323f0751 100644 --- a/Factory/Config/Filter/ScaleFactory.php +++ b/Factory/Config/Filter/ScaleFactory.php @@ -21,8 +21,6 @@ */ final class ScaleFactory implements FilterFactoryInterface { - const NAME = 'scale'; - /** * @var SizeFactory */ @@ -38,7 +36,7 @@ public function __construct(SizeFactory $sizeFactory) */ public function getName(): string { - return self::NAME; + return Scale::NAME; } /** @@ -49,6 +47,6 @@ public function create(array $options): FilterInterface $dimensions = $this->sizeFactory->createFromOptions($options, 'dim'); $to = isset($options['to']) ? (float) $options['to'] : null; - return new Scale(self::NAME, $dimensions, $to); + return new Scale($dimensions, $to); } } diff --git a/Factory/Config/Filter/StripFactory.php b/Factory/Config/Filter/StripFactory.php index 4dee33a13..1d257f3b0 100644 --- a/Factory/Config/Filter/StripFactory.php +++ b/Factory/Config/Filter/StripFactory.php @@ -20,14 +20,12 @@ */ final class StripFactory implements FilterFactoryInterface { - const NAME = 'strip'; - /** * {@inheritdoc} */ public function getName(): string { - return self::NAME; + return Strip::NAME; } /** @@ -35,6 +33,6 @@ public function getName(): string */ public function create(array $options): FilterInterface { - return new Strip(self::NAME); + return new Strip(); } } diff --git a/Factory/Config/Filter/ThumbnailFactory.php b/Factory/Config/Filter/ThumbnailFactory.php index edacb5a48..6b75d2b6a 100644 --- a/Factory/Config/Filter/ThumbnailFactory.php +++ b/Factory/Config/Filter/ThumbnailFactory.php @@ -21,8 +21,6 @@ */ final class ThumbnailFactory implements FilterFactoryInterface { - const NAME = 'thumbnail'; - /** * @var SizeFactory */ @@ -38,7 +36,7 @@ public function __construct(SizeFactory $sizeFactory) */ public function getName(): string { - return self::NAME; + return Thumbnail::NAME; } /** @@ -51,6 +49,6 @@ public function create(array $options): FilterInterface $allowUpscale = $options['allow_upscale'] ?? null; $filter = $options['filter'] ?? null; - return new Thumbnail(self::NAME, $size, $mode, $allowUpscale, $filter); + return new Thumbnail($size, $mode, $allowUpscale, $filter); } } diff --git a/Factory/Config/Filter/UpscaleFactory.php b/Factory/Config/Filter/UpscaleFactory.php index e19fe023d..1ab2e5fa5 100644 --- a/Factory/Config/Filter/UpscaleFactory.php +++ b/Factory/Config/Filter/UpscaleFactory.php @@ -21,8 +21,6 @@ */ final class UpscaleFactory implements FilterFactoryInterface { - const NAME = 'upscale'; - /** * @var SizeFactory */ @@ -38,7 +36,7 @@ public function __construct(SizeFactory $sizeFactory) */ public function getName(): string { - return self::NAME; + return Upscale::NAME; } /** @@ -49,6 +47,6 @@ public function create(array $options): FilterInterface $min = $this->sizeFactory->createFromOptions($options, 'min'); $by = isset($options['by']) ? (float) $options['by'] : null; - return new Upscale(self::NAME, $min, $by); + return new Upscale($min, $by); } } diff --git a/Factory/Config/Filter/WatermarkFactory.php b/Factory/Config/Filter/WatermarkFactory.php index 4545fa5d7..49e002cff 100644 --- a/Factory/Config/Filter/WatermarkFactory.php +++ b/Factory/Config/Filter/WatermarkFactory.php @@ -20,14 +20,12 @@ */ final class WatermarkFactory implements FilterFactoryInterface { - const NAME = 'watermark'; - /** * {@inheritdoc} */ public function getName(): string { - return self::NAME; + return Watermark::NAME; } /** @@ -38,6 +36,6 @@ public function create(array $options): FilterInterface $size = $options['size'] ?? null; $position = isset($options['position']) ? $options['position'] : 'center'; - return new Watermark(self::NAME, $options['image'], $size, $position); + return new Watermark($options['image'], $size, $position); } } From 36d7843b14740c6e892a18d0f0c29978f27ef534 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 11 Jun 2018 15:18:37 +0200 Subject: [PATCH 21/30] fixed static tests --- Config/Filter/Type/Downscale.php | 2 +- Config/Filter/Type/Upscale.php | 4 ++-- Config/StackInterface.php | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Config/Filter/Type/Downscale.php b/Config/Filter/Type/Downscale.php index d5658b820..2abd993bc 100644 --- a/Config/Filter/Type/Downscale.php +++ b/Config/Filter/Type/Downscale.php @@ -30,7 +30,7 @@ final class Downscale extends FilterAbstract implements FilterInterface /** * @param Size $max - * @param float|null $by sets the "ratio multiple" which initiates a proportional scale operation computed by multiplying all image sides by this value + * @param float|null $by sets the "ratio multiple" which initiates a proportional scale operation computed by multiplying all image sides by this value */ public function __construct(Size $max, float $by = null) { diff --git a/Config/Filter/Type/Upscale.php b/Config/Filter/Type/Upscale.php index cecb2459a..9ffc59491 100644 --- a/Config/Filter/Type/Upscale.php +++ b/Config/Filter/Type/Upscale.php @@ -29,8 +29,8 @@ final class Upscale extends FilterAbstract implements FilterInterface private $by; /** - * @param Size $min - * @param float $by sets the "ratio multiple" which initiates a proportional scale operation computed by multiplying all image sides by this value + * @param Size $min + * @param float $by sets the "ratio multiple" which initiates a proportional scale operation computed by multiplying all image sides by this value */ public function __construct(Size $min, float $by = null) { diff --git a/Config/StackInterface.php b/Config/StackInterface.php index 7316a147c..9275b7fb9 100644 --- a/Config/StackInterface.php +++ b/Config/StackInterface.php @@ -13,7 +13,6 @@ interface StackInterface { - public function getName(): string; public function getDataLoader(): ?string; From 91bfe94648dbfa0ed1634e705bc888ce8e2f908e Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 11 Jun 2018 15:21:25 +0200 Subject: [PATCH 22/30] applied PR fixes --- Config/StackBuilder.php | 10 ---------- Config/StackCollection.php | 3 --- 2 files changed, 13 deletions(-) diff --git a/Config/StackBuilder.php b/Config/StackBuilder.php index c6a9dfe19..aa604abb7 100644 --- a/Config/StackBuilder.php +++ b/Config/StackBuilder.php @@ -25,22 +25,12 @@ final class StackBuilder implements StackBuilderInterface */ private $filterFactoryCollection; - /** - * @param StackFactoryInterface $filterSetFactory - * @param FilterFactoryCollection $filterFactoryCollection - */ public function __construct(StackFactoryInterface $filterSetFactory, FilterFactoryCollection $filterFactoryCollection) { $this->filterSetFactory = $filterSetFactory; $this->filterFactoryCollection = $filterFactoryCollection; } - /** - * @param string $filterSetName - * @param array $filterSetData - * - * @return StackInterface - */ public function build(string $filterSetName, array $filterSetData): StackInterface { $filters = []; diff --git a/Config/StackCollection.php b/Config/StackCollection.php index 913d3bc0d..c024eb437 100644 --- a/Config/StackCollection.php +++ b/Config/StackCollection.php @@ -13,9 +13,6 @@ final class StackCollection { - /** - * @var array - */ private $filterSets = []; /** From 9df4d4b5be6e4361f65bbffdae137125d7e77a74 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 11 Jun 2018 15:55:38 +0200 Subject: [PATCH 23/30] added @codeCoverageIgnore --- Config/Filter/Argument/Point.php | 3 +++ Config/Filter/Argument/Size.php | 3 +++ Config/Filter/Type/AutoRotate.php | 3 +++ Config/Filter/Type/Background.php | 3 +++ Config/Filter/Type/Crop.php | 3 +++ Config/Filter/Type/Downscale.php | 3 +++ Config/Filter/Type/FilterAbstract.php | 3 +++ Config/Filter/Type/Flip.php | 3 +++ Config/Filter/Type/Grayscale.php | 3 +++ Config/Filter/Type/Interlace.php | 3 +++ Config/Filter/Type/Paste.php | 3 +++ Config/Filter/Type/RelativeResize.php | 3 +++ Config/Filter/Type/Resize.php | 3 +++ Config/Filter/Type/Rotate.php | 3 +++ Config/Filter/Type/Scale.php | 3 +++ Config/Filter/Type/Strip.php | 3 +++ Config/Filter/Type/Thumbnail.php | 3 +++ Config/Filter/Type/Upscale.php | 3 +++ Config/Filter/Type/Watermark.php | 3 +++ Factory/Config/Filter/Argument/PointFactory.php | 1 + Factory/Config/Filter/Argument/SizeFactory.php | 1 + Factory/Config/Filter/AutoRotateFactory.php | 1 + Factory/Config/Filter/BackgroundFactory.php | 1 + Factory/Config/Filter/CropFactory.php | 1 + Factory/Config/Filter/DownscaleFactory.php | 1 + Factory/Config/Filter/FlipFactory.php | 1 + Factory/Config/Filter/GrayscaleFactory.php | 1 + Factory/Config/Filter/InterlaceFactory.php | 1 + Factory/Config/Filter/PasteFactory.php | 1 + Factory/Config/Filter/RelativeResizeFactory.php | 1 + Factory/Config/Filter/ResizeFactory.php | 1 + Factory/Config/Filter/RotateFactory.php | 1 + Factory/Config/Filter/ScaleFactory.php | 1 + Factory/Config/Filter/StripFactory.php | 1 + Factory/Config/Filter/ThumbnailFactory.php | 1 + Factory/Config/Filter/UpscaleFactory.php | 1 + Factory/Config/Filter/WatermarkFactory.php | 1 + 37 files changed, 75 insertions(+) diff --git a/Config/Filter/Argument/Point.php b/Config/Filter/Argument/Point.php index 0c1dd6d31..33b0d8a6d 100644 --- a/Config/Filter/Argument/Point.php +++ b/Config/Filter/Argument/Point.php @@ -11,6 +11,9 @@ namespace Liip\ImagineBundle\Config\Filter\Argument; +/** + * @codeCoverageIgnore + */ final class Point { /** diff --git a/Config/Filter/Argument/Size.php b/Config/Filter/Argument/Size.php index 2340585ec..e3ec10213 100644 --- a/Config/Filter/Argument/Size.php +++ b/Config/Filter/Argument/Size.php @@ -11,6 +11,9 @@ namespace Liip\ImagineBundle\Config\Filter\Argument; +/** + * @codeCoverageIgnore + */ final class Size { /** diff --git a/Config/Filter/Type/AutoRotate.php b/Config/Filter/Type/AutoRotate.php index 755c9d670..e15c63eea 100644 --- a/Config/Filter/Type/AutoRotate.php +++ b/Config/Filter/Type/AutoRotate.php @@ -13,6 +13,9 @@ use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class AutoRotate extends FilterAbstract implements FilterInterface { const NAME = 'auto_rotate'; diff --git a/Config/Filter/Type/Background.php b/Config/Filter/Type/Background.php index 7a2f823bd..ef01b17fb 100644 --- a/Config/Filter/Type/Background.php +++ b/Config/Filter/Type/Background.php @@ -14,6 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Background extends FilterAbstract implements FilterInterface { const NAME = 'background'; diff --git a/Config/Filter/Type/Crop.php b/Config/Filter/Type/Crop.php index 20a9551c7..d3e7831f5 100644 --- a/Config/Filter/Type/Crop.php +++ b/Config/Filter/Type/Crop.php @@ -15,6 +15,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Crop extends FilterAbstract implements FilterInterface { const NAME = 'crop'; diff --git a/Config/Filter/Type/Downscale.php b/Config/Filter/Type/Downscale.php index 2abd993bc..38093e56c 100644 --- a/Config/Filter/Type/Downscale.php +++ b/Config/Filter/Type/Downscale.php @@ -14,6 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Downscale extends FilterAbstract implements FilterInterface { const NAME = 'downscale'; diff --git a/Config/Filter/Type/FilterAbstract.php b/Config/Filter/Type/FilterAbstract.php index fe06216cd..f7d7e7570 100644 --- a/Config/Filter/Type/FilterAbstract.php +++ b/Config/Filter/Type/FilterAbstract.php @@ -13,6 +13,9 @@ use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ abstract class FilterAbstract implements FilterInterface { const NAME = self::NAME; diff --git a/Config/Filter/Type/Flip.php b/Config/Filter/Type/Flip.php index e5bce04d2..9e476f7a5 100644 --- a/Config/Filter/Type/Flip.php +++ b/Config/Filter/Type/Flip.php @@ -13,6 +13,9 @@ use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Flip extends FilterAbstract implements FilterInterface { const NAME = 'flip'; diff --git a/Config/Filter/Type/Grayscale.php b/Config/Filter/Type/Grayscale.php index 5a3ae96fa..220a7ced0 100644 --- a/Config/Filter/Type/Grayscale.php +++ b/Config/Filter/Type/Grayscale.php @@ -13,6 +13,9 @@ use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Grayscale extends FilterAbstract implements FilterInterface { const NAME = 'grayscale'; diff --git a/Config/Filter/Type/Interlace.php b/Config/Filter/Type/Interlace.php index dd962af25..a0b59ef1b 100644 --- a/Config/Filter/Type/Interlace.php +++ b/Config/Filter/Type/Interlace.php @@ -13,6 +13,9 @@ use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Interlace extends FilterAbstract implements FilterInterface { const NAME = 'interlace'; diff --git a/Config/Filter/Type/Paste.php b/Config/Filter/Type/Paste.php index 78f26f6af..a710b7547 100644 --- a/Config/Filter/Type/Paste.php +++ b/Config/Filter/Type/Paste.php @@ -14,6 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Point; use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Paste extends FilterAbstract implements FilterInterface { const NAME = 'auto_rotate'; diff --git a/Config/Filter/Type/RelativeResize.php b/Config/Filter/Type/RelativeResize.php index 6ae5ce41e..f7abc2288 100644 --- a/Config/Filter/Type/RelativeResize.php +++ b/Config/Filter/Type/RelativeResize.php @@ -13,6 +13,9 @@ use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class RelativeResize extends FilterAbstract implements FilterInterface { const NAME = 'relative_resize'; diff --git a/Config/Filter/Type/Resize.php b/Config/Filter/Type/Resize.php index 9e15944f0..a13ccb58c 100644 --- a/Config/Filter/Type/Resize.php +++ b/Config/Filter/Type/Resize.php @@ -14,6 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Resize extends FilterAbstract implements FilterInterface { const NAME = 'resize'; diff --git a/Config/Filter/Type/Rotate.php b/Config/Filter/Type/Rotate.php index 1855d8ea9..7f6e9d352 100644 --- a/Config/Filter/Type/Rotate.php +++ b/Config/Filter/Type/Rotate.php @@ -13,6 +13,9 @@ use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Rotate extends FilterAbstract implements FilterInterface { const NAME = 'rotate'; diff --git a/Config/Filter/Type/Scale.php b/Config/Filter/Type/Scale.php index 639502bdb..87c3300f7 100644 --- a/Config/Filter/Type/Scale.php +++ b/Config/Filter/Type/Scale.php @@ -14,6 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Scale extends FilterAbstract implements FilterInterface { const NAME = 'scale'; diff --git a/Config/Filter/Type/Strip.php b/Config/Filter/Type/Strip.php index db72db6a5..d21692fd8 100644 --- a/Config/Filter/Type/Strip.php +++ b/Config/Filter/Type/Strip.php @@ -13,6 +13,9 @@ use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Strip extends FilterAbstract implements FilterInterface { const NAME = 'strip'; diff --git a/Config/Filter/Type/Thumbnail.php b/Config/Filter/Type/Thumbnail.php index 65012aa64..7fa1995cf 100644 --- a/Config/Filter/Type/Thumbnail.php +++ b/Config/Filter/Type/Thumbnail.php @@ -14,6 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Thumbnail extends FilterAbstract implements FilterInterface { const NAME = 'thumbnail'; diff --git a/Config/Filter/Type/Upscale.php b/Config/Filter/Type/Upscale.php index 9ffc59491..65bab3e13 100644 --- a/Config/Filter/Type/Upscale.php +++ b/Config/Filter/Type/Upscale.php @@ -14,6 +14,9 @@ use Liip\ImagineBundle\Config\Filter\Argument\Size; use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Upscale extends FilterAbstract implements FilterInterface { const NAME = 'upscale'; diff --git a/Config/Filter/Type/Watermark.php b/Config/Filter/Type/Watermark.php index 3859be210..661bcbd5d 100644 --- a/Config/Filter/Type/Watermark.php +++ b/Config/Filter/Type/Watermark.php @@ -13,6 +13,9 @@ use Liip\ImagineBundle\Config\FilterInterface; +/** + * @codeCoverageIgnore + */ final class Watermark extends FilterAbstract implements FilterInterface { const NAME = 'watermark'; diff --git a/Factory/Config/Filter/Argument/PointFactory.php b/Factory/Config/Filter/Argument/PointFactory.php index c3cfc53db..8e9629c93 100644 --- a/Factory/Config/Filter/Argument/PointFactory.php +++ b/Factory/Config/Filter/Argument/PointFactory.php @@ -16,6 +16,7 @@ /** * @internal + * @codeCoverageIgnore */ final class PointFactory { diff --git a/Factory/Config/Filter/Argument/SizeFactory.php b/Factory/Config/Filter/Argument/SizeFactory.php index 21f93da0c..89539bd0b 100644 --- a/Factory/Config/Filter/Argument/SizeFactory.php +++ b/Factory/Config/Filter/Argument/SizeFactory.php @@ -16,6 +16,7 @@ /** * @internal + * @codeCoverageIgnore */ final class SizeFactory { diff --git a/Factory/Config/Filter/AutoRotateFactory.php b/Factory/Config/Filter/AutoRotateFactory.php index b6d79130a..c3ece4e5c 100644 --- a/Factory/Config/Filter/AutoRotateFactory.php +++ b/Factory/Config/Filter/AutoRotateFactory.php @@ -17,6 +17,7 @@ /** * @internal + * @codeCoverageIgnore */ final class AutoRotateFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/BackgroundFactory.php b/Factory/Config/Filter/BackgroundFactory.php index 35092570f..b1cff9b6e 100644 --- a/Factory/Config/Filter/BackgroundFactory.php +++ b/Factory/Config/Filter/BackgroundFactory.php @@ -18,6 +18,7 @@ /** * @internal + * @codeCoverageIgnore */ final class BackgroundFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/CropFactory.php b/Factory/Config/Filter/CropFactory.php index 5fdbe9d96..7660e2a40 100644 --- a/Factory/Config/Filter/CropFactory.php +++ b/Factory/Config/Filter/CropFactory.php @@ -19,6 +19,7 @@ /** * @internal + * @codeCoverageIgnore */ final class CropFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/DownscaleFactory.php b/Factory/Config/Filter/DownscaleFactory.php index b1618aa13..cf9b05c20 100644 --- a/Factory/Config/Filter/DownscaleFactory.php +++ b/Factory/Config/Filter/DownscaleFactory.php @@ -18,6 +18,7 @@ /** * @internal + * @codeCoverageIgnore */ final class DownscaleFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/FlipFactory.php b/Factory/Config/Filter/FlipFactory.php index a406abfb4..546478529 100644 --- a/Factory/Config/Filter/FlipFactory.php +++ b/Factory/Config/Filter/FlipFactory.php @@ -17,6 +17,7 @@ /** * @internal + * @codeCoverageIgnore */ final class FlipFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/GrayscaleFactory.php b/Factory/Config/Filter/GrayscaleFactory.php index ae45c0dc2..80e57e870 100644 --- a/Factory/Config/Filter/GrayscaleFactory.php +++ b/Factory/Config/Filter/GrayscaleFactory.php @@ -17,6 +17,7 @@ /** * @internal + * @codeCoverageIgnore */ final class GrayscaleFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/InterlaceFactory.php b/Factory/Config/Filter/InterlaceFactory.php index aa2d96902..e645b9c69 100644 --- a/Factory/Config/Filter/InterlaceFactory.php +++ b/Factory/Config/Filter/InterlaceFactory.php @@ -18,6 +18,7 @@ /** * @internal + * @codeCoverageIgnore */ final class InterlaceFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/PasteFactory.php b/Factory/Config/Filter/PasteFactory.php index 636823f1b..607821e73 100644 --- a/Factory/Config/Filter/PasteFactory.php +++ b/Factory/Config/Filter/PasteFactory.php @@ -18,6 +18,7 @@ /** * @internal + * @codeCoverageIgnore */ final class PasteFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/RelativeResizeFactory.php b/Factory/Config/Filter/RelativeResizeFactory.php index a73de7d92..95fe036bf 100644 --- a/Factory/Config/Filter/RelativeResizeFactory.php +++ b/Factory/Config/Filter/RelativeResizeFactory.php @@ -17,6 +17,7 @@ /** * @internal + * @codeCoverageIgnore */ final class RelativeResizeFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/ResizeFactory.php b/Factory/Config/Filter/ResizeFactory.php index a05a8d098..5b349317c 100644 --- a/Factory/Config/Filter/ResizeFactory.php +++ b/Factory/Config/Filter/ResizeFactory.php @@ -18,6 +18,7 @@ /** * @internal + * @codeCoverageIgnore */ final class ResizeFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/RotateFactory.php b/Factory/Config/Filter/RotateFactory.php index f6f9801d6..7dc12beb5 100644 --- a/Factory/Config/Filter/RotateFactory.php +++ b/Factory/Config/Filter/RotateFactory.php @@ -17,6 +17,7 @@ /** * @internal + * @codeCoverageIgnore */ final class RotateFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/ScaleFactory.php b/Factory/Config/Filter/ScaleFactory.php index b323f0751..54a7dcc11 100644 --- a/Factory/Config/Filter/ScaleFactory.php +++ b/Factory/Config/Filter/ScaleFactory.php @@ -18,6 +18,7 @@ /** * @internal + * @codeCoverageIgnore */ final class ScaleFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/StripFactory.php b/Factory/Config/Filter/StripFactory.php index 1d257f3b0..9eef666d2 100644 --- a/Factory/Config/Filter/StripFactory.php +++ b/Factory/Config/Filter/StripFactory.php @@ -17,6 +17,7 @@ /** * @internal + * @codeCoverageIgnore */ final class StripFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/ThumbnailFactory.php b/Factory/Config/Filter/ThumbnailFactory.php index 6b75d2b6a..795eb2f82 100644 --- a/Factory/Config/Filter/ThumbnailFactory.php +++ b/Factory/Config/Filter/ThumbnailFactory.php @@ -18,6 +18,7 @@ /** * @internal + * @codeCoverageIgnore */ final class ThumbnailFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/UpscaleFactory.php b/Factory/Config/Filter/UpscaleFactory.php index 1ab2e5fa5..296022490 100644 --- a/Factory/Config/Filter/UpscaleFactory.php +++ b/Factory/Config/Filter/UpscaleFactory.php @@ -18,6 +18,7 @@ /** * @internal + * @codeCoverageIgnore */ final class UpscaleFactory implements FilterFactoryInterface { diff --git a/Factory/Config/Filter/WatermarkFactory.php b/Factory/Config/Filter/WatermarkFactory.php index 49e002cff..502bfe0d4 100644 --- a/Factory/Config/Filter/WatermarkFactory.php +++ b/Factory/Config/Filter/WatermarkFactory.php @@ -17,6 +17,7 @@ /** * @internal + * @codeCoverageIgnore */ final class WatermarkFactory implements FilterFactoryInterface { From be890e3f1318f2738b83102803899cd2d9e00645 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 11 Jun 2018 17:14:29 +0200 Subject: [PATCH 24/30] applied PR fixes --- Config/Filter/Type/AutoRotate.php | 4 +--- Config/Filter/Type/Background.php | 3 +-- Config/Filter/Type/Crop.php | 3 +-- Config/Filter/Type/Downscale.php | 3 +-- Config/Filter/Type/Flip.php | 4 +--- Config/Filter/Type/Grayscale.php | 4 +--- Config/Filter/Type/Interlace.php | 4 +--- Config/Filter/Type/Paste.php | 3 +-- Config/Filter/Type/RelativeResize.php | 4 +--- Config/Filter/Type/Resize.php | 3 +-- Config/Filter/Type/Rotate.php | 4 +--- Config/Filter/Type/Scale.php | 3 +-- Config/Filter/Type/Strip.php | 4 +--- Config/Filter/Type/Thumbnail.php | 3 +-- Config/Filter/Type/Upscale.php | 3 +-- Config/Filter/Type/Watermark.php | 4 +--- Config/FilterInterface.php | 2 ++ Config/Stack.php | 2 +- Config/StackBuilderInterface.php | 6 ------ Factory/Config/FilterFactoryInterface.php | 9 +-------- Factory/Config/StackFactory.php | 3 ++- Factory/Config/StackFactoryInterface.php | 6 +++--- 22 files changed, 25 insertions(+), 59 deletions(-) diff --git a/Config/Filter/Type/AutoRotate.php b/Config/Filter/Type/AutoRotate.php index e15c63eea..7eaafc73a 100644 --- a/Config/Filter/Type/AutoRotate.php +++ b/Config/Filter/Type/AutoRotate.php @@ -11,12 +11,10 @@ namespace Liip\ImagineBundle\Config\Filter\Type; -use Liip\ImagineBundle\Config\FilterInterface; - /** * @codeCoverageIgnore */ -final class AutoRotate extends FilterAbstract implements FilterInterface +final class AutoRotate extends FilterAbstract { const NAME = 'auto_rotate'; } diff --git a/Config/Filter/Type/Background.php b/Config/Filter/Type/Background.php index ef01b17fb..82a3585be 100644 --- a/Config/Filter/Type/Background.php +++ b/Config/Filter/Type/Background.php @@ -12,12 +12,11 @@ namespace Liip\ImagineBundle\Config\Filter\Type; use Liip\ImagineBundle\Config\Filter\Argument\Size; -use Liip\ImagineBundle\Config\FilterInterface; /** * @codeCoverageIgnore */ -final class Background extends FilterAbstract implements FilterInterface +final class Background extends FilterAbstract { const NAME = 'background'; diff --git a/Config/Filter/Type/Crop.php b/Config/Filter/Type/Crop.php index d3e7831f5..633a9182f 100644 --- a/Config/Filter/Type/Crop.php +++ b/Config/Filter/Type/Crop.php @@ -13,12 +13,11 @@ use Liip\ImagineBundle\Config\Filter\Argument\Point; use Liip\ImagineBundle\Config\Filter\Argument\Size; -use Liip\ImagineBundle\Config\FilterInterface; /** * @codeCoverageIgnore */ -final class Crop extends FilterAbstract implements FilterInterface +final class Crop extends FilterAbstract { const NAME = 'crop'; diff --git a/Config/Filter/Type/Downscale.php b/Config/Filter/Type/Downscale.php index 38093e56c..042849be2 100644 --- a/Config/Filter/Type/Downscale.php +++ b/Config/Filter/Type/Downscale.php @@ -12,12 +12,11 @@ namespace Liip\ImagineBundle\Config\Filter\Type; use Liip\ImagineBundle\Config\Filter\Argument\Size; -use Liip\ImagineBundle\Config\FilterInterface; /** * @codeCoverageIgnore */ -final class Downscale extends FilterAbstract implements FilterInterface +final class Downscale extends FilterAbstract { const NAME = 'downscale'; diff --git a/Config/Filter/Type/Flip.php b/Config/Filter/Type/Flip.php index 9e476f7a5..016f0460b 100644 --- a/Config/Filter/Type/Flip.php +++ b/Config/Filter/Type/Flip.php @@ -11,12 +11,10 @@ namespace Liip\ImagineBundle\Config\Filter\Type; -use Liip\ImagineBundle\Config\FilterInterface; - /** * @codeCoverageIgnore */ -final class Flip extends FilterAbstract implements FilterInterface +final class Flip extends FilterAbstract { const NAME = 'flip'; diff --git a/Config/Filter/Type/Grayscale.php b/Config/Filter/Type/Grayscale.php index 220a7ced0..5bb5a82bd 100644 --- a/Config/Filter/Type/Grayscale.php +++ b/Config/Filter/Type/Grayscale.php @@ -11,12 +11,10 @@ namespace Liip\ImagineBundle\Config\Filter\Type; -use Liip\ImagineBundle\Config\FilterInterface; - /** * @codeCoverageIgnore */ -final class Grayscale extends FilterAbstract implements FilterInterface +final class Grayscale extends FilterAbstract { const NAME = 'grayscale'; } diff --git a/Config/Filter/Type/Interlace.php b/Config/Filter/Type/Interlace.php index a0b59ef1b..eb75ff2b5 100644 --- a/Config/Filter/Type/Interlace.php +++ b/Config/Filter/Type/Interlace.php @@ -11,12 +11,10 @@ namespace Liip\ImagineBundle\Config\Filter\Type; -use Liip\ImagineBundle\Config\FilterInterface; - /** * @codeCoverageIgnore */ -final class Interlace extends FilterAbstract implements FilterInterface +final class Interlace extends FilterAbstract { const NAME = 'interlace'; diff --git a/Config/Filter/Type/Paste.php b/Config/Filter/Type/Paste.php index a710b7547..90344b558 100644 --- a/Config/Filter/Type/Paste.php +++ b/Config/Filter/Type/Paste.php @@ -12,12 +12,11 @@ namespace Liip\ImagineBundle\Config\Filter\Type; use Liip\ImagineBundle\Config\Filter\Argument\Point; -use Liip\ImagineBundle\Config\FilterInterface; /** * @codeCoverageIgnore */ -final class Paste extends FilterAbstract implements FilterInterface +final class Paste extends FilterAbstract { const NAME = 'auto_rotate'; diff --git a/Config/Filter/Type/RelativeResize.php b/Config/Filter/Type/RelativeResize.php index f7abc2288..a93ff07a9 100644 --- a/Config/Filter/Type/RelativeResize.php +++ b/Config/Filter/Type/RelativeResize.php @@ -11,12 +11,10 @@ namespace Liip\ImagineBundle\Config\Filter\Type; -use Liip\ImagineBundle\Config\FilterInterface; - /** * @codeCoverageIgnore */ -final class RelativeResize extends FilterAbstract implements FilterInterface +final class RelativeResize extends FilterAbstract { const NAME = 'relative_resize'; diff --git a/Config/Filter/Type/Resize.php b/Config/Filter/Type/Resize.php index a13ccb58c..9edb27cdd 100644 --- a/Config/Filter/Type/Resize.php +++ b/Config/Filter/Type/Resize.php @@ -12,12 +12,11 @@ namespace Liip\ImagineBundle\Config\Filter\Type; use Liip\ImagineBundle\Config\Filter\Argument\Size; -use Liip\ImagineBundle\Config\FilterInterface; /** * @codeCoverageIgnore */ -final class Resize extends FilterAbstract implements FilterInterface +final class Resize extends FilterAbstract { const NAME = 'resize'; diff --git a/Config/Filter/Type/Rotate.php b/Config/Filter/Type/Rotate.php index 7f6e9d352..ef4cd3851 100644 --- a/Config/Filter/Type/Rotate.php +++ b/Config/Filter/Type/Rotate.php @@ -11,12 +11,10 @@ namespace Liip\ImagineBundle\Config\Filter\Type; -use Liip\ImagineBundle\Config\FilterInterface; - /** * @codeCoverageIgnore */ -final class Rotate extends FilterAbstract implements FilterInterface +final class Rotate extends FilterAbstract { const NAME = 'rotate'; diff --git a/Config/Filter/Type/Scale.php b/Config/Filter/Type/Scale.php index 87c3300f7..7f0447602 100644 --- a/Config/Filter/Type/Scale.php +++ b/Config/Filter/Type/Scale.php @@ -12,12 +12,11 @@ namespace Liip\ImagineBundle\Config\Filter\Type; use Liip\ImagineBundle\Config\Filter\Argument\Size; -use Liip\ImagineBundle\Config\FilterInterface; /** * @codeCoverageIgnore */ -final class Scale extends FilterAbstract implements FilterInterface +final class Scale extends FilterAbstract { const NAME = 'scale'; diff --git a/Config/Filter/Type/Strip.php b/Config/Filter/Type/Strip.php index d21692fd8..bfdf3f019 100644 --- a/Config/Filter/Type/Strip.php +++ b/Config/Filter/Type/Strip.php @@ -11,12 +11,10 @@ namespace Liip\ImagineBundle\Config\Filter\Type; -use Liip\ImagineBundle\Config\FilterInterface; - /** * @codeCoverageIgnore */ -final class Strip extends FilterAbstract implements FilterInterface +final class Strip extends FilterAbstract { const NAME = 'strip'; } diff --git a/Config/Filter/Type/Thumbnail.php b/Config/Filter/Type/Thumbnail.php index 7fa1995cf..f3e9a8446 100644 --- a/Config/Filter/Type/Thumbnail.php +++ b/Config/Filter/Type/Thumbnail.php @@ -12,12 +12,11 @@ namespace Liip\ImagineBundle\Config\Filter\Type; use Liip\ImagineBundle\Config\Filter\Argument\Size; -use Liip\ImagineBundle\Config\FilterInterface; /** * @codeCoverageIgnore */ -final class Thumbnail extends FilterAbstract implements FilterInterface +final class Thumbnail extends FilterAbstract { const NAME = 'thumbnail'; diff --git a/Config/Filter/Type/Upscale.php b/Config/Filter/Type/Upscale.php index 65bab3e13..acd227208 100644 --- a/Config/Filter/Type/Upscale.php +++ b/Config/Filter/Type/Upscale.php @@ -12,12 +12,11 @@ namespace Liip\ImagineBundle\Config\Filter\Type; use Liip\ImagineBundle\Config\Filter\Argument\Size; -use Liip\ImagineBundle\Config\FilterInterface; /** * @codeCoverageIgnore */ -final class Upscale extends FilterAbstract implements FilterInterface +final class Upscale extends FilterAbstract { const NAME = 'upscale'; diff --git a/Config/Filter/Type/Watermark.php b/Config/Filter/Type/Watermark.php index 661bcbd5d..aff94ddb0 100644 --- a/Config/Filter/Type/Watermark.php +++ b/Config/Filter/Type/Watermark.php @@ -11,12 +11,10 @@ namespace Liip\ImagineBundle\Config\Filter\Type; -use Liip\ImagineBundle\Config\FilterInterface; - /** * @codeCoverageIgnore */ -final class Watermark extends FilterAbstract implements FilterInterface +final class Watermark extends FilterAbstract { const NAME = 'watermark'; diff --git a/Config/FilterInterface.php b/Config/FilterInterface.php index 690c87ae7..6b45461ef 100644 --- a/Config/FilterInterface.php +++ b/Config/FilterInterface.php @@ -20,6 +20,8 @@ interface FilterInterface { /** + * Filter identifier + * * @return string */ public function getName(): string; diff --git a/Config/Stack.php b/Config/Stack.php index d206c6823..04c8f7972 100644 --- a/Config/Stack.php +++ b/Config/Stack.php @@ -37,7 +37,7 @@ final class Stack implements StackInterface /** * @param string $name - * @param string|null $dataLoader + * @param string|null $dataLoader name of a custom data loader. Default value: filesystem (which means the standard filesystem loader is used). * @param int|null $quality * @param FilterInterface[] $filters */ diff --git a/Config/StackBuilderInterface.php b/Config/StackBuilderInterface.php index 8018fcf2b..cfa4c8f75 100644 --- a/Config/StackBuilderInterface.php +++ b/Config/StackBuilderInterface.php @@ -13,11 +13,5 @@ interface StackBuilderInterface { - /** - * @param string $filterSetName - * @param array $filterSetData - * - * @return StackInterface - */ public function build(string $filterSetName, array $filterSetData): StackInterface; } diff --git a/Factory/Config/FilterFactoryInterface.php b/Factory/Config/FilterFactoryInterface.php index 1d2c47739..9b706b3fe 100644 --- a/Factory/Config/FilterFactoryInterface.php +++ b/Factory/Config/FilterFactoryInterface.php @@ -16,16 +16,9 @@ interface FilterFactoryInterface { /** - * Filter name - * - * @return string + * Name of the filter that this factory can create */ public function getName(): string; - /** - * @param array $options - * - * @return FilterInterface - */ public function create(array $options): FilterInterface; } diff --git a/Factory/Config/StackFactory.php b/Factory/Config/StackFactory.php index cbb602f2b..7641977c6 100644 --- a/Factory/Config/StackFactory.php +++ b/Factory/Config/StackFactory.php @@ -12,6 +12,7 @@ namespace Liip\ImagineBundle\Factory\Config; use Liip\ImagineBundle\Config\Stack; +use Liip\ImagineBundle\Config\StackInterface; /** * @internal @@ -21,7 +22,7 @@ final class StackFactory implements StackFactoryInterface /** * {@inheritdoc} */ - public function create(string $name, string $dataLoader = null, int $quality = null, array $filters) + public function create(string $name, string $dataLoader = null, int $quality = null, array $filters): StackInterface { return new Stack($name, $dataLoader, $quality, $filters); } diff --git a/Factory/Config/StackFactoryInterface.php b/Factory/Config/StackFactoryInterface.php index f3f6abbfb..34ce275e3 100644 --- a/Factory/Config/StackFactoryInterface.php +++ b/Factory/Config/StackFactoryInterface.php @@ -12,7 +12,7 @@ namespace Liip\ImagineBundle\Factory\Config; use Liip\ImagineBundle\Config\FilterInterface; -use Liip\ImagineBundle\Config\Stack; +use Liip\ImagineBundle\Config\StackInterface; interface StackFactoryInterface { @@ -22,7 +22,7 @@ interface StackFactoryInterface * @param int|null $quality * @param FilterInterface[] $filters * - * @return Stack + * @return StackInterface */ - public function create(string $name, string $dataLoader = null, int $quality = null, array $filters); + public function create(string $name, string $dataLoader = null, int $quality = null, array $filters): StackInterface; } From 8458b37bbe006d8fddcd04a0ad039a5715dacefd Mon Sep 17 00:00:00 2001 From: nrg Date: Tue, 12 Jun 2018 11:34:06 +0200 Subject: [PATCH 25/30] renamed filterSet to stack --- Config/StackBuilder.php | 20 ++++++++++---------- Config/StackBuilderInterface.php | 2 +- Config/StackCollection.php | 12 ++++++------ Tests/Config/FilterSetCollectionTest.php | 4 ++-- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Config/StackBuilder.php b/Config/StackBuilder.php index aa604abb7..d399bd537 100644 --- a/Config/StackBuilder.php +++ b/Config/StackBuilder.php @@ -18,33 +18,33 @@ final class StackBuilder implements StackBuilderInterface /** * @var StackFactoryInterface */ - private $filterSetFactory; + private $stackFactory; /** * @var FilterFactoryCollection */ private $filterFactoryCollection; - public function __construct(StackFactoryInterface $filterSetFactory, FilterFactoryCollection $filterFactoryCollection) + public function __construct(StackFactoryInterface $stackFactory, FilterFactoryCollection $filterFactoryCollection) { - $this->filterSetFactory = $filterSetFactory; + $this->stackFactory = $stackFactory; $this->filterFactoryCollection = $filterFactoryCollection; } - public function build(string $filterSetName, array $filterSetData): StackInterface + public function build(string $stackName, array $stackData): StackInterface { $filters = []; - if (!empty($filterSetData['filters'])) { - foreach ($filterSetData['filters'] as $filterName => $filterData) { + if (!empty($stackData['filters'])) { + foreach ($stackData['filters'] as $filterName => $filterData) { $filterFactory = $this->filterFactoryCollection->getFilterFactoryByName($filterName); $filters[] = $filterFactory->create($filterData); } } - return $this->filterSetFactory->create( - $filterSetName, - $filterSetData['data_loader'], - $filterSetData['quality'], + return $this->stackFactory->create( + $stackName, + $stackData['data_loader'], + $stackData['quality'], $filters ); } diff --git a/Config/StackBuilderInterface.php b/Config/StackBuilderInterface.php index cfa4c8f75..56319d230 100644 --- a/Config/StackBuilderInterface.php +++ b/Config/StackBuilderInterface.php @@ -13,5 +13,5 @@ interface StackBuilderInterface { - public function build(string $filterSetName, array $filterSetData): StackInterface; + public function build(string $stackName, array $stackData): StackInterface; } diff --git a/Config/StackCollection.php b/Config/StackCollection.php index c024eb437..e2d71c8e8 100644 --- a/Config/StackCollection.php +++ b/Config/StackCollection.php @@ -13,7 +13,7 @@ final class StackCollection { - private $filterSets = []; + private $stacks = []; /** * @var StackBuilderInterface @@ -34,16 +34,16 @@ public function __construct(StackBuilderInterface $stackBuilder, array $filtersC /** * @return StackInterface[] */ - public function getFilterSets() + public function getStacks() { - if (!empty($this->filterSets)) { - return $this->filterSets; + if (!empty($this->stacks)) { + return $this->stacks; } foreach ($this->filtersConfiguration as $filterSetName => $filterSetData) { - $this->filterSets[] = $this->stackBuilder->build($filterSetName, $filterSetData); + $this->stacks[] = $this->stackBuilder->build($filterSetName, $filterSetData); } - return $this->filterSets; + return $this->stacks; } } diff --git a/Tests/Config/FilterSetCollectionTest.php b/Tests/Config/FilterSetCollectionTest.php index f6e4e6bf2..8b82aa51b 100644 --- a/Tests/Config/FilterSetCollectionTest.php +++ b/Tests/Config/FilterSetCollectionTest.php @@ -35,7 +35,7 @@ public function testGetFilterSets() ->will($this->returnValue($filterSetMock)); $model = new StackCollection($stackBuilderMock, [$filterSetName => $filterSetData]); - $this->assertSame([$filterSetMock], $model->getFilterSets()); - $this->assertSame([$filterSetMock], $model->getFilterSets()); + $this->assertSame([$filterSetMock], $model->getStacks()); + $this->assertSame([$filterSetMock], $model->getStacks()); } } From 6613b610009ac8ca10c85a53df945e3560461a99 Mon Sep 17 00:00:00 2001 From: nrg Date: Tue, 12 Jun 2018 17:55:18 +0200 Subject: [PATCH 26/30] removed self-referencing constant --- Config/Filter/Type/FilterAbstract.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Config/Filter/Type/FilterAbstract.php b/Config/Filter/Type/FilterAbstract.php index f7d7e7570..e0ddc8779 100644 --- a/Config/Filter/Type/FilterAbstract.php +++ b/Config/Filter/Type/FilterAbstract.php @@ -18,10 +18,11 @@ */ abstract class FilterAbstract implements FilterInterface { - const NAME = self::NAME; - public function getName(): string { - return self::NAME; + if (!defined('static::NAME')) { + throw new \Exception('Constant NAME is not defined on subclass ' . get_class($this)); + } + return static::NAME; } } From cdab3b8dbebd2784b3987797a73791f6a3c4b4be Mon Sep 17 00:00:00 2001 From: nrg Date: Wed, 13 Jun 2018 09:58:12 +0200 Subject: [PATCH 27/30] fixed static tests --- Config/Filter/Type/FilterAbstract.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Config/Filter/Type/FilterAbstract.php b/Config/Filter/Type/FilterAbstract.php index e0ddc8779..3b1eb2782 100644 --- a/Config/Filter/Type/FilterAbstract.php +++ b/Config/Filter/Type/FilterAbstract.php @@ -21,8 +21,9 @@ abstract class FilterAbstract implements FilterInterface public function getName(): string { if (!defined('static::NAME')) { - throw new \Exception('Constant NAME is not defined on subclass ' . get_class($this)); + throw new \Exception('Constant NAME is not defined on subclass '.get_class($this)); } + return static::NAME; } } From f8cdfb778c24c9b9e9e54284fc1791f45502b622 Mon Sep 17 00:00:00 2001 From: nrg Date: Wed, 13 Jun 2018 18:03:18 +0200 Subject: [PATCH 28/30] fixed small issues: - optional return types - typo in Paste filter name --- Config/Filter/Type/Background.php | 4 ++-- Config/Filter/Type/Downscale.php | 6 +++--- Config/Filter/Type/Paste.php | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Config/Filter/Type/Background.php b/Config/Filter/Type/Background.php index 82a3585be..d582e65f2 100644 --- a/Config/Filter/Type/Background.php +++ b/Config/Filter/Type/Background.php @@ -58,12 +58,12 @@ public function __construct( $this->size = $size; } - public function getColor(): string + public function getColor(): ?string { return $this->color; } - public function getTransparency(): string + public function getTransparency(): ?string { return $this->transparency; } diff --git a/Config/Filter/Type/Downscale.php b/Config/Filter/Type/Downscale.php index 042849be2..4d2732928 100644 --- a/Config/Filter/Type/Downscale.php +++ b/Config/Filter/Type/Downscale.php @@ -31,16 +31,16 @@ final class Downscale extends FilterAbstract private $by; /** - * @param Size $max + * @param Size|null $max * @param float|null $by sets the "ratio multiple" which initiates a proportional scale operation computed by multiplying all image sides by this value */ - public function __construct(Size $max, float $by = null) + public function __construct(Size $max = null, float $by = null) { $this->max = $max; $this->by = $by; } - public function getMax(): Size + public function getMax(): ?Size { return $this->max; } diff --git a/Config/Filter/Type/Paste.php b/Config/Filter/Type/Paste.php index 90344b558..c92906e93 100644 --- a/Config/Filter/Type/Paste.php +++ b/Config/Filter/Type/Paste.php @@ -18,7 +18,7 @@ */ final class Paste extends FilterAbstract { - const NAME = 'auto_rotate'; + const NAME = 'paste'; /** * @var Point From 2a397ae77ac4b32ef2f0e00f2482fa382ca349d6 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 18 Jun 2018 13:51:13 +0200 Subject: [PATCH 29/30] fixed Watermark factory arguments order and type sanitize --- Factory/Config/Filter/WatermarkFactory.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Factory/Config/Filter/WatermarkFactory.php b/Factory/Config/Filter/WatermarkFactory.php index 502bfe0d4..74e152ebe 100644 --- a/Factory/Config/Filter/WatermarkFactory.php +++ b/Factory/Config/Filter/WatermarkFactory.php @@ -35,8 +35,12 @@ public function getName(): string public function create(array $options): FilterInterface { $size = $options['size'] ?? null; + if (null !== $size) { + $size = (float) $size; + } + $position = isset($options['position']) ? $options['position'] : 'center'; - return new Watermark($options['image'], $size, $position); + return new Watermark($options['image'], $position, $size); } } From 0624a2a09d19b8da79aee01b48729be7f865bb24 Mon Sep 17 00:00:00 2001 From: nrg Date: Mon, 25 Jun 2018 16:50:48 +0200 Subject: [PATCH 30/30] removed backslashes from native constants --- Binary/Locator/FileSystemInsecureLocator.php | 6 +++--- Binary/Locator/FileSystemLocator.php | 2 +- .../Factory/Loader/FileSystemLoaderFactory.php | 2 +- Tests/AbstractTest.php | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Binary/Locator/FileSystemInsecureLocator.php b/Binary/Locator/FileSystemInsecureLocator.php index 12a90a277..0073d1c95 100644 --- a/Binary/Locator/FileSystemInsecureLocator.php +++ b/Binary/Locator/FileSystemInsecureLocator.php @@ -21,9 +21,9 @@ class FileSystemInsecureLocator extends FileSystemLocator */ protected function generateAbsolutePath(string $root, string $path): ?string { - if (false === mb_strpos($path, '..'.\DIRECTORY_SEPARATOR) && - false === mb_strpos($path, \DIRECTORY_SEPARATOR.'..') && - false !== file_exists($absolute = $root.\DIRECTORY_SEPARATOR.$path) + if (false === mb_strpos($path, '..'.DIRECTORY_SEPARATOR) && + false === mb_strpos($path, DIRECTORY_SEPARATOR.'..') && + false !== file_exists($absolute = $root.DIRECTORY_SEPARATOR.$path) ) { return $absolute; } diff --git a/Binary/Locator/FileSystemLocator.php b/Binary/Locator/FileSystemLocator.php index 4b3dd8288..e7eb1256d 100644 --- a/Binary/Locator/FileSystemLocator.php +++ b/Binary/Locator/FileSystemLocator.php @@ -60,7 +60,7 @@ public function locate(string $path): string */ protected function generateAbsolutePath(string $root, string $path): ?string { - if (false !== $absolute = realpath($root.\DIRECTORY_SEPARATOR.$path)) { + if (false !== $absolute = realpath($root.DIRECTORY_SEPARATOR.$path)) { return $absolute; } diff --git a/DependencyInjection/Factory/Loader/FileSystemLoaderFactory.php b/DependencyInjection/Factory/Loader/FileSystemLoaderFactory.php index 2f511f726..f0f36e152 100644 --- a/DependencyInjection/Factory/Loader/FileSystemLoaderFactory.php +++ b/DependencyInjection/Factory/Loader/FileSystemLoaderFactory.php @@ -127,7 +127,7 @@ private function getBundleResourcePaths(ContainerBuilder $container) } return array_map(function ($path) { - return $path.\DIRECTORY_SEPARATOR.'Resources'.\DIRECTORY_SEPARATOR.'public'; + return $path.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'public'; }, $paths); } diff --git a/Tests/AbstractTest.php b/Tests/AbstractTest.php index fbd43993b..c70fc2c84 100644 --- a/Tests/AbstractTest.php +++ b/Tests/AbstractTest.php @@ -50,8 +50,8 @@ abstract class AbstractTest extends TestCase protected function setUp() { - $this->fixturesPath = realpath(__DIR__.\DIRECTORY_SEPARATOR.'Fixtures'); - $this->temporaryPath = sys_get_temp_dir().\DIRECTORY_SEPARATOR.'liip_imagine_test'; + $this->fixturesPath = realpath(__DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $this->temporaryPath = sys_get_temp_dir().DIRECTORY_SEPARATOR.'liip_imagine_test'; $this->filesystem = new Filesystem(); if ($this->filesystem->exists($this->temporaryPath)) {