From 13b8155fea8a7eebef2f28cd9687c9f11698f3ab Mon Sep 17 00:00:00 2001 From: Julian Zimmermann Date: Fri, 3 Jan 2020 08:42:43 +0100 Subject: [PATCH 1/4] ProductUrlStore - delete url when product was removed from store - added spryker store dependency --- .../Business/ProductUrlManager.php | 130 ++++++++++++++++-- .../ProductUrlStoreBusinessFactory.php | 25 +++- .../Facade/ProductToStoreUrlBridge.php | 10 -- .../Facade/ProductToStoreUrlInterface.php | 10 -- .../Dependency/Facade/ProductToUrlBridge.php | 19 +++ .../Facade/ProductToUrlInterface.php | 16 +++ .../Facade/StoreToProductStoreUrlBridge.php | 30 ++++ .../StoreToProductStoreUrlBridgeInterface.php | 11 ++ .../ProductUrlStoreDependencyProvider.php | 44 ++++++ .../Business/ProductUrlManagerTest.php | 20 ++- .../Business/ProductUrlStoreFacadeTest.php | 20 ++- 11 files changed, 295 insertions(+), 40 deletions(-) delete mode 100644 src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/ProductToStoreUrlBridge.php delete mode 100644 src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/ProductToStoreUrlInterface.php create mode 100644 src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/ProductToUrlBridge.php create mode 100644 src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/ProductToUrlInterface.php create mode 100644 src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/StoreToProductStoreUrlBridge.php create mode 100644 src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/StoreToProductStoreUrlBridgeInterface.php diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManager.php b/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManager.php index fdc798f..8bd8bd9 100644 --- a/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManager.php +++ b/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManager.php @@ -2,12 +2,53 @@ namespace FondOfSpryker\Zed\ProductUrlStore\Business; +use FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\ProductToUrlInterface; +use FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface; +use Generated\Shared\Transfer\LocalizedUrlTransfer; use Generated\Shared\Transfer\ProductAbstractTransfer; +use Generated\Shared\Transfer\ProductUrlTransfer; use Generated\Shared\Transfer\UrlTransfer; +use Spryker\Zed\Product\Business\Product\Url\ProductUrlGeneratorInterface; use Spryker\Zed\Product\Business\Product\Url\ProductUrlManager as SprykerProductUrlMananger; +use Spryker\Zed\Product\Dependency\Facade\ProductToLocaleInterface; +use Spryker\Zed\Product\Dependency\Facade\ProductToTouchInterface; +use Spryker\Zed\Product\Persistence\ProductQueryContainerInterface; class ProductUrlManager extends SprykerProductUrlMananger implements ProductUrlManagerInterface { + /** + * @var \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface + */ + protected $storeFacade; + + /** + * @var \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\ProductToUrlInterface + */ + protected $urlFacade; + + /** + * ProductUrlManager constructor. + * + * @param \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\ProductToUrlInterface $urlFacade + * @param \Spryker\Zed\Product\Dependency\Facade\ProductToTouchInterface $touchFacade + * @param \Spryker\Zed\Product\Dependency\Facade\ProductToLocaleInterface $localeFacade + * @param \Spryker\Zed\Product\Persistence\ProductQueryContainerInterface $productQueryContainer + * @param \Spryker\Zed\Product\Business\Product\Url\ProductUrlGeneratorInterface $urlGenerator + * @param \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface $storeFacade + */ + public function __construct( + ProductToUrlInterface $urlFacade, + ProductToTouchInterface $touchFacade, + ProductToLocaleInterface $localeFacade, + ProductQueryContainerInterface $productQueryContainer, + ProductUrlGeneratorInterface $urlGenerator, + StoreToProductStoreUrlBridgeInterface $storeFacade + ) { + parent::__construct($urlFacade, $touchFacade, $localeFacade, $productQueryContainer, $urlGenerator); + $this->storeFacade = $storeFacade; + $this->urlFacade = $urlFacade; + } + /** * @param \Generated\Shared\Transfer\ProductAbstractTransfer $productAbstractTransfer * @@ -44,23 +85,17 @@ public function createProductUrl(ProductAbstractTransfer $productAbstractTransfe */ public function updateProductUrl(ProductAbstractTransfer $productAbstractTransfer) { + $availableStores = $this->storeFacade->getAllStores(); + $this->productQueryContainer->getConnection()->beginTransaction(); $productUrl = $this->urlGenerator->generateProductUrl($productAbstractTransfer); foreach ($productAbstractTransfer->getStoreRelation()->getIdStores() as $idStore) { - foreach ($productUrl->getUrls() as $localizedUrlTransfer) { - $urlTransfer = $this->getUrlByIdProductAbstractIdStoreAndIdLocale( - $productAbstractTransfer->requireIdProductAbstract()->getIdProductAbstract(), - $idStore, - $localizedUrlTransfer->getLocale()->getIdLocale() - ); + $availableStores = $this->filterStores($availableStores, $idStore); - $urlTransfer - ->setUrl($localizedUrlTransfer->getUrl()) - ->setFkLocale($localizedUrlTransfer->getLocale()->getIdLocale()) - ->setFkStore($idStore) - ->setFkResourceProductAbstract($productAbstractTransfer->getIdProductAbstract()); + foreach ($productUrl->getUrls() as $localizedUrlTransfer) { + $urlTransfer = $this->createUrlTransfer($productAbstractTransfer, $idStore, $localizedUrlTransfer); if ($urlTransfer->getIdUrl()) { $this->urlFacade->updateUrl($urlTransfer); @@ -70,6 +105,7 @@ public function updateProductUrl(ProductAbstractTransfer $productAbstractTransfe } } + $this->clearOrphanedUrls($productAbstractTransfer, $availableStores, $productUrl); $this->productQueryContainer->getConnection()->commit(); return $productUrl; @@ -94,4 +130,76 @@ protected function getUrlByIdProductAbstractIdStoreAndIdLocale($idProductAbstrac return $urlTransfer; } + /** + * @param \Generated\Shared\Transfer\ProductAbstractTransfer $productAbstractTransfer + * @param int $idStore + * @param \Generated\Shared\Transfer\LocalizedUrlTransfer $localizedUrlTransfer + * + * @return \Generated\Shared\Transfer\UrlTransfer + */ + protected function createUrlTransfer( + ProductAbstractTransfer $productAbstractTransfer, + int $idStore, + LocalizedUrlTransfer $localizedUrlTransfer + ): UrlTransfer { + $urlTransfer = $this->getUrlByIdProductAbstractIdStoreAndIdLocale( + $productAbstractTransfer->requireIdProductAbstract()->getIdProductAbstract(), + $idStore, + $localizedUrlTransfer->getLocale()->getIdLocale() + ); + + $urlTransfer + ->setUrl($localizedUrlTransfer->getUrl()) + ->setFkLocale($localizedUrlTransfer->getLocale()->getIdLocale()) + ->setFkStore($idStore) + ->setFkResourceProductAbstract($productAbstractTransfer->getIdProductAbstract()); + return $urlTransfer; + } + + /** + * @param array $availableStores + * @param int $idStore + * + * @return \Generated\Shared\Transfer\StoreTransfer[] + */ + protected function filterStores(array $availableStores, int $idStore): array + { + foreach ($availableStores as $index => $availableStore) { + if ($availableStore->getIdStore() === $idStore) { + unset($availableStores[$index]); + break; + } + } + + return $availableStores; + } + + /** + * @param \Generated\Shared\Transfer\ProductAbstractTransfer $productAbstractTransfer + * @param \Generated\Shared\Transfer\StoreTransfer[] $availableStores + * @param \Generated\Shared\Transfer\ProductUrlTransfer $productUrl + * + * @return void + */ + protected function clearOrphanedUrls( + ProductAbstractTransfer $productAbstractTransfer, + array $availableStores, + ProductUrlTransfer $productUrl + ): void { + foreach ($availableStores as $availableStore) { + foreach ($productUrl->getUrls() as $localizedUrlTransfer) { + $urlTransfer = $this->createUrlTransfer( + $productAbstractTransfer, + $availableStore->getIdStore(), + $localizedUrlTransfer + ); + + $urlTransfer = $this->urlFacade->findUrl($urlTransfer); + + if ($urlTransfer && $urlTransfer->getIdUrl() && $availableStore->getIdStore() === $urlTransfer->getFkStore()) { + $this->urlFacade->deleteUrl($urlTransfer); + } + } + } + } } diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreBusinessFactory.php b/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreBusinessFactory.php index b1ec597..531e63b 100644 --- a/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreBusinessFactory.php +++ b/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreBusinessFactory.php @@ -2,7 +2,11 @@ namespace FondOfSpryker\Zed\ProductUrlStore\Business; +use FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\ProductToUrlInterface; +use FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface; +use FondOfSpryker\Zed\ProductUrlStore\ProductUrlStoreDependencyProvider; use Spryker\Zed\Product\Business\ProductBusinessFactory as SprykerProductBusinessFactory; +use Spryker\Zed\Store\Business\StoreFacadeInterface; /** * @method \Spryker\Zed\Product\ProductConfig getConfig() @@ -19,7 +23,26 @@ public function createProductUrlManager(): ProductUrlManagerInterface $this->getTouchFacade(), $this->getLocaleFacade(), $this->getQueryContainer(), - $this->createProductUrlGenerator() + $this->createProductUrlGenerator(), + $this->getStoreFacade() ); } + + /** + * @return \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface + * @throws \Spryker\Zed\Kernel\Exception\Container\ContainerKeyNotFoundException + */ + protected function getStoreFacade(): StoreToProductStoreUrlBridgeInterface + { + return $this->getProvidedDependency(ProductUrlStoreDependencyProvider::FACADE_STORE); + } + + /** + * @return \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface + * @throws \Spryker\Zed\Kernel\Exception\Container\ContainerKeyNotFoundException + */ + protected function getUrlFacade(): ProductToUrlInterface + { + return $this->getProvidedDependency(ProductUrlStoreDependencyProvider::FACADE_URL); + } } diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/ProductToStoreUrlBridge.php b/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/ProductToStoreUrlBridge.php deleted file mode 100644 index 4234490..0000000 --- a/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/ProductToStoreUrlBridge.php +++ /dev/null @@ -1,10 +0,0 @@ -urlFacade->findUrl($urlTransfer); + } +} diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/ProductToUrlInterface.php b/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/ProductToUrlInterface.php new file mode 100644 index 0000000..9ef2a68 --- /dev/null +++ b/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/ProductToUrlInterface.php @@ -0,0 +1,16 @@ +storeFacade = $storeFacade; + } + + /** + * @return \Generated\Shared\Transfer\StoreTransfer[] + */ + public function getAllStores(): array + { + return $this->storeFacade->getAllStores(); + } +} diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/StoreToProductStoreUrlBridgeInterface.php b/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/StoreToProductStoreUrlBridgeInterface.php new file mode 100644 index 0000000..c27931a --- /dev/null +++ b/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/StoreToProductStoreUrlBridgeInterface.php @@ -0,0 +1,11 @@ +addStoreFacade($container); + $container = $this->addUrlFacade($container); + + return $container; + } + + /** + * @param \Spryker\Zed\Kernel\Container $container + * @return \Spryker\Zed\Kernel\Container + */ + protected function addStoreFacade(Container $container): Container + { + $container[self::FACADE_STORE] = function (Container $container) { + return new StoreToProductStoreUrlBridge($container->getLocator()->store()->facade()); + }; + + return $container; + } + + /** + * @param \Spryker\Zed\Kernel\Container $container + * @return \Spryker\Zed\Kernel\Container + */ + protected function addUrlFacade(Container $container): Container + { + $container[self::FACADE_URL] = function (Container $container) { + return new ProductToUrlBridge($container->getLocator()->url()->facade()); + }; + + return $container; + } } diff --git a/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerTest.php b/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerTest.php index 2b56956..af3268a 100644 --- a/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerTest.php +++ b/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerTest.php @@ -4,6 +4,8 @@ use ArrayObject; use Codeception\Test\Unit; +use FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\ProductToUrlInterface; +use FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface; use Generated\Shared\Transfer\LocaleTransfer; use Generated\Shared\Transfer\LocalizedAttributesTransfer; use Generated\Shared\Transfer\LocalizedUrlTransfer; @@ -15,7 +17,6 @@ use Spryker\Zed\Product\Business\Product\Url\ProductUrlGeneratorInterface; use Spryker\Zed\Product\Dependency\Facade\ProductToLocaleInterface; use Spryker\Zed\Product\Dependency\Facade\ProductToTouchInterface; -use Spryker\Zed\Product\Dependency\Facade\ProductToUrlInterface; use Spryker\Zed\Product\Persistence\ProductQueryContainerInterface; class ProductUrlManagerTest extends Unit @@ -41,7 +42,7 @@ class ProductUrlManagerTest extends Unit protected $productUrlTransfer; /** - * @var \Spryker\Zed\Product\Dependency\Facade\ProductToUrlInterface|\PHPUnit\Framework\MockObject\MockObject + * @var \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\ProductToUrlInterface|\PHPUnit\Framework\MockObject\MockObject */ protected $productUrlFacadeMock; @@ -80,11 +81,20 @@ class ProductUrlManagerTest extends Unit */ protected $spyPersistenceUrlMock; + /** + * @var \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface + */ + protected $storeToProductStoreUrlBridgeInterface; + /** * @return void */ public function _before() { + $this->storeToProductStoreUrlBridgeInterface = $this->getMockBuilder(StoreToProductStoreUrlBridgeInterface::class) + ->disableOriginalConstructor() + ->getMock(); + $this->productAbstractTransferMock = $this->getMockBuilder('\Generated\Shared\Transfer\ProductAbstractTransfer') ->disableOriginalConstructor() ->getMock(); @@ -171,7 +181,8 @@ public function testCreateProductUrl() $this->productTouchFacadeMock, $this->productLocalFacadeMock, $this->productQueryContainerMock, - $this->productUrlGeneratorMock + $this->productUrlGeneratorMock, + $this->storeToProductStoreUrlBridgeInterface ); $productUrl = $productUrlManager->createProductUrl($this->productAbstractTransfer); @@ -219,7 +230,8 @@ public function testUpdateProductUrl() $this->productTouchFacadeMock, $this->productLocalFacadeMock, $this->productQueryContainerMock, - $this->productUrlGeneratorMock + $this->productUrlGeneratorMock, + $this->storeToProductStoreUrlBridgeInterface ); $productUrl = $productUrlManager->updateProductUrl($this->productAbstractTransfer); diff --git a/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeTest.php b/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeTest.php index 6bb168d..00193c1 100644 --- a/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeTest.php +++ b/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeTest.php @@ -4,6 +4,8 @@ use ArrayObject; use Codeception\Test\Unit; +use FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\ProductToUrlInterface; +use FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface; use Generated\Shared\Transfer\LocaleTransfer; use Generated\Shared\Transfer\LocalizedAttributesTransfer; use Generated\Shared\Transfer\LocalizedUrlTransfer; @@ -16,7 +18,6 @@ use Spryker\Zed\Product\Business\Product\Url\ProductUrlGeneratorInterface; use Spryker\Zed\Product\Dependency\Facade\ProductToLocaleInterface; use Spryker\Zed\Product\Dependency\Facade\ProductToTouchInterface; -use Spryker\Zed\Product\Dependency\Facade\ProductToUrlInterface; use Spryker\Zed\Product\Persistence\ProductQueryContainerInterface; class ProductUrlStoreFacadeTest extends Unit @@ -37,7 +38,7 @@ class ProductUrlStoreFacadeTest extends Unit protected $productTouchFacadeMock; /** - * @var \Spryker\Zed\Product\Dependency\Facade\ProductToUrlInterface|\PHPUnit\Framework\MockObject\MockObject + * @var \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\ProductToUrlInterface|\PHPUnit\Framework\MockObject\MockObject */ protected $productUrlFacadeMock; @@ -76,6 +77,11 @@ class ProductUrlStoreFacadeTest extends Unit */ protected $spyPersistenceUrlMock; + /** + * @var \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface + */ + protected $storeToProductStoreUrlBridgeInterface; + /** * @return void */ @@ -90,6 +96,10 @@ public function _before() ], ]); + $this->storeToProductStoreUrlBridgeInterface = $this->getMockBuilder(StoreToProductStoreUrlBridgeInterface::class) + ->disableOriginalConstructor() + ->getMock(); + $this->productLocalFacadeMock = $this->getMockBuilder(ProductToLocaleInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -179,7 +189,8 @@ public function testCreateProductAbstractUrl() $this->productTouchFacadeMock, $this->productLocalFacadeMock, $this->productQueryContainerMock, - $this->productUrlGeneratorMock + $this->productUrlGeneratorMock, + $this->storeToProductStoreUrlBridgeInterface ); $this->productUrlStoreBusinessFactoryMock->expects($this->atLeastOnce()) @@ -229,7 +240,8 @@ public function testUpdateProductAbstractUrl() $this->productTouchFacadeMock, $this->productLocalFacadeMock, $this->productQueryContainerMock, - $this->productUrlGeneratorMock + $this->productUrlGeneratorMock, + $this->storeToProductStoreUrlBridgeInterface ); $this->productUrlStoreBusinessFactoryMock->expects($this->atLeastOnce()) From dc0194f14a38a6aaf6f8b09b1b3e0b29d71ed66f Mon Sep 17 00:00:00 2001 From: Julian Zimmermann Date: Fri, 3 Jan 2020 08:48:32 +0100 Subject: [PATCH 2/4] ProductUrlStore - lowercase composer package name --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index f256ed4..4687d1f 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "spryker/code-sniffer": "^0.11", "spryker/development": "^3.6", "codeception/codeception": "^2.3", - "mikey179/vfsStream": "^1.6", + "mikey179/vfsstream": "^1.6", "phpro/grumphp": "^0.14", "sebastian/phpcpd": "^4.0" }, @@ -45,4 +45,4 @@ "Generated\\": "tests/Generated/" } } -} \ No newline at end of file +} From 3f036957809f98bfd851e31b0a54cd771f45ac1d Mon Sep 17 00:00:00 2001 From: Julian Zimmermann Date: Fri, 3 Jan 2020 09:39:23 +0100 Subject: [PATCH 3/4] fix memory limit travis --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7c1eed2..ac9777f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,9 @@ language: php php: - 7.1 +env: + COMPOSER_MEMORY_LIMIT=-1 + cache: directories: - vendor @@ -16,4 +19,4 @@ script: - vendor/bin/codecept run --coverage-xml after_success: - - vendor/bin/php-coveralls \ No newline at end of file + - vendor/bin/php-coveralls From 09128bca386e8674204f568fc13f352dfce3c70a Mon Sep 17 00:00:00 2001 From: Julian Zimmermann Date: Fri, 3 Jan 2020 09:56:32 +0100 Subject: [PATCH 4/4] ProductUrlStore - append --standard=config/ruleset.xml to code --- .../Business/ProductUrlManagerInterface.php | 1 - .../ProductUrlStoreBusinessFactory.php | 4 +-- .../ProductUrlStoreFacadeInterface.php | 1 - .../Facade/StoreToProductStoreUrlBridge.php | 3 ++- .../ProductUrlStorePersistenceFactory.php | 6 ++++- .../ProductUrlStoreQueryContainer.php | 2 -- .../ProductUrlStoreBusinessFactory.php | 27 ------------------- ...reConfig.php => ProductUrlStoreConfig.php} | 0 .../ProductUrlStoreDependencyProvider.php | 8 +++--- .../Business/ProductUrlManagerTest.php | 2 ++ .../Business/ProductUrlStoreFacadeTest.php | 4 ++- .../Shared/Transfer/LocaleTransfer.php | 1 - .../Transfer/LocalizedAttributesTransfer.php | 4 +-- .../Shared/Transfer/LocalizedUrlTransfer.php | 2 +- .../Transfer/ProductAbstractTransfer.php | 10 ++++--- .../Shared/Transfer/ProductUrlTransfer.php | 1 - .../Shared/Transfer/StoreRelationTransfer.php | 4 +-- .../Generated/Shared/Transfer/UrlTransfer.php | 1 - tests/Orm/Zed/Url/Persistence/Base/SpyUrl.php | 2 +- .../Zed/Url/Persistence/Base/SpyUrlQuery.php | 2 +- tests/_bootstrap.php | 2 +- tests/_data/config_default.php | 2 +- tests/_data/stores.php | 2 +- 23 files changed, 33 insertions(+), 58 deletions(-) delete mode 100644 src/FondOfSpryker/Zed/ProductUrlStore/ProductUrlStoreBusinessFactory.php rename src/FondOfSpryker/Zed/ProductUrlStore/{ProducturlStoreConfig.php => ProductUrlStoreConfig.php} (100%) diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerInterface.php b/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerInterface.php index ad22cdc..495c3c8 100644 --- a/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerInterface.php +++ b/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerInterface.php @@ -6,5 +6,4 @@ interface ProductUrlManagerInterface extends SprykerProductUrlManagerInterface { - } diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreBusinessFactory.php b/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreBusinessFactory.php index 531e63b..a57ec95 100644 --- a/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreBusinessFactory.php +++ b/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreBusinessFactory.php @@ -6,10 +6,10 @@ use FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface; use FondOfSpryker\Zed\ProductUrlStore\ProductUrlStoreDependencyProvider; use Spryker\Zed\Product\Business\ProductBusinessFactory as SprykerProductBusinessFactory; -use Spryker\Zed\Store\Business\StoreFacadeInterface; /** * @method \Spryker\Zed\Product\ProductConfig getConfig() + * @method \FondOfSpryker\Zed\ProductUrlStore\Persistence\ProductUrlStoreQueryContainer getQueryContainer() */ class ProductUrlStoreBusinessFactory extends SprykerProductBusinessFactory { @@ -30,7 +30,6 @@ public function createProductUrlManager(): ProductUrlManagerInterface /** * @return \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface - * @throws \Spryker\Zed\Kernel\Exception\Container\ContainerKeyNotFoundException */ protected function getStoreFacade(): StoreToProductStoreUrlBridgeInterface { @@ -39,7 +38,6 @@ protected function getStoreFacade(): StoreToProductStoreUrlBridgeInterface /** * @return \FondOfSpryker\Zed\ProductUrlStore\Dependency\Facade\StoreToProductStoreUrlBridgeInterface - * @throws \Spryker\Zed\Kernel\Exception\Container\ContainerKeyNotFoundException */ protected function getUrlFacade(): ProductToUrlInterface { diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeInterface.php b/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeInterface.php index 3829902..6126bc5 100644 --- a/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeInterface.php +++ b/src/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeInterface.php @@ -32,5 +32,4 @@ public function createProductAbstractUrl(ProductAbstractTransfer $productAbstrac * @return \Generated\Shared\Transfer\ProductUrlTransfer */ public function updateProductAbstractUrl(ProductAbstractTransfer $productAbstractTransfer): ProductUrlTransfer; - } diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/StoreToProductStoreUrlBridge.php b/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/StoreToProductStoreUrlBridge.php index e986bae..eb83092 100644 --- a/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/StoreToProductStoreUrlBridge.php +++ b/src/FondOfSpryker/Zed/ProductUrlStore/Dependency/Facade/StoreToProductStoreUrlBridge.php @@ -13,7 +13,8 @@ class StoreToProductStoreUrlBridge implements StoreToProductStoreUrlBridgeInterf /** * StoreToProductStoreUrlBridge constructor. - * @param \Spryker\Zed\Store\Business\StoreFacadeInterface $storeFacade + * + * @param \Spryker\Zed\Store\Business\StoreFacadeInterface $storeFacade */ public function __construct(StoreFacadeInterface $storeFacade) { diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/Persistence/ProductUrlStorePersistenceFactory.php b/src/FondOfSpryker/Zed/ProductUrlStore/Persistence/ProductUrlStorePersistenceFactory.php index 4048885..56ad5da 100644 --- a/src/FondOfSpryker/Zed/ProductUrlStore/Persistence/ProductUrlStorePersistenceFactory.php +++ b/src/FondOfSpryker/Zed/ProductUrlStore/Persistence/ProductUrlStorePersistenceFactory.php @@ -4,6 +4,10 @@ use Spryker\Zed\Product\Persistence\ProductPersistenceFactory; +/** + * @method \FondOfSpryker\Zed\ProductUrlStore\ProductUrlStoreConfig getConfig() + * @method \FondOfSpryker\Zed\ProductUrlStore\Persistence\ProductUrlStoreQueryContainer getQueryContainer() + */ class ProductUrlStorePersistenceFactory extends ProductPersistenceFactory { -} \ No newline at end of file +} diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/Persistence/ProductUrlStoreQueryContainer.php b/src/FondOfSpryker/Zed/ProductUrlStore/Persistence/ProductUrlStoreQueryContainer.php index 5e2f5b6..be898b8 100644 --- a/src/FondOfSpryker/Zed/ProductUrlStore/Persistence/ProductUrlStoreQueryContainer.php +++ b/src/FondOfSpryker/Zed/ProductUrlStore/Persistence/ProductUrlStoreQueryContainer.php @@ -2,12 +2,10 @@ namespace FondOfSpryker\Zed\ProductUrlStore\Persistence; -use FondOfSpryker\Zed\ProductUrlStore\Persistence\ProductUrlStoreQueryContainerInterface; use Spryker\Zed\Product\Persistence\ProductQueryContainer as SprykerProductQueryContainer; class ProductUrlStoreQueryContainer extends SprykerProductQueryContainer implements ProductUrlStoreQueryContainerInterface { - /** * {@inheritdoc} * diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/ProductUrlStoreBusinessFactory.php b/src/FondOfSpryker/Zed/ProductUrlStore/ProductUrlStoreBusinessFactory.php deleted file mode 100644 index 87bb2ed..0000000 --- a/src/FondOfSpryker/Zed/ProductUrlStore/ProductUrlStoreBusinessFactory.php +++ /dev/null @@ -1,27 +0,0 @@ -getUrlFacade(), - $this->getTouchFacade(), - $this->getLocaleFacade(), - $this->getQueryContainer(), - $this->createProductUrlGenerator() - ); - } -} diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/ProducturlStoreConfig.php b/src/FondOfSpryker/Zed/ProductUrlStore/ProductUrlStoreConfig.php similarity index 100% rename from src/FondOfSpryker/Zed/ProductUrlStore/ProducturlStoreConfig.php rename to src/FondOfSpryker/Zed/ProductUrlStore/ProductUrlStoreConfig.php diff --git a/src/FondOfSpryker/Zed/ProductUrlStore/ProductUrlStoreDependencyProvider.php b/src/FondOfSpryker/Zed/ProductUrlStore/ProductUrlStoreDependencyProvider.php index aa7e07d..82a23ba 100755 --- a/src/FondOfSpryker/Zed/ProductUrlStore/ProductUrlStoreDependencyProvider.php +++ b/src/FondOfSpryker/Zed/ProductUrlStore/ProductUrlStoreDependencyProvider.php @@ -12,7 +12,7 @@ class ProductUrlStoreDependencyProvider extends SprykerProductDependencyProvider public const FACADE_STORE = 'FACADE_STORE'; /** - * @param \Spryker\Zed\Kernel\Container $container + * @param \Spryker\Zed\Kernel\Container $container * * @return \Spryker\Zed\Kernel\Container */ @@ -26,7 +26,8 @@ public function provideBusinessLayerDependencies(Container $container) } /** - * @param \Spryker\Zed\Kernel\Container $container + * @param \Spryker\Zed\Kernel\Container $container + * * @return \Spryker\Zed\Kernel\Container */ protected function addStoreFacade(Container $container): Container @@ -39,7 +40,8 @@ protected function addStoreFacade(Container $container): Container } /** - * @param \Spryker\Zed\Kernel\Container $container + * @param \Spryker\Zed\Kernel\Container $container + * * @return \Spryker\Zed\Kernel\Container */ protected function addUrlFacade(Container $container): Container diff --git a/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerTest.php b/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerTest.php index af3268a..adf01b4 100644 --- a/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerTest.php +++ b/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlManagerTest.php @@ -321,6 +321,8 @@ public function getSampleStoresValues() } /** + * @param \Generated\Shared\Transfer\ProductAbstractTransfer $productAbstractTransfer + * * @return \Generated\Shared\Transfer\ProductUrlTransfer */ public function generateProductUrls(ProductAbstractTransfer $productAbstractTransfer) diff --git a/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeTest.php b/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeTest.php index 00193c1..403c352 100644 --- a/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeTest.php +++ b/tests/FondOfSpryker/Zed/ProductUrlStore/Business/ProductUrlStoreFacadeTest.php @@ -333,9 +333,11 @@ public function getSampleStoresValues() } /** + * @param \Generated\Shared\Transfer\ProductAbstractTransfer $productAbstractTransfer + * * @return \Generated\Shared\Transfer\ProductUrlTransfer */ - public function generateProductUrls(ProductAbstractTransfer $productAbstractTransfer) + public function generateProductUrls(ProductAbstractTransfer $productAbstractTransfer): ProductUrlTransfer { $productUrlTransfer = new ProductUrlTransfer(); $productUrlTransfer->setAbstractSku($productAbstractTransfer->getSku()); diff --git a/tests/Generated/Shared/Transfer/LocaleTransfer.php b/tests/Generated/Shared/Transfer/LocaleTransfer.php index b745758..25bae6b 100644 --- a/tests/Generated/Shared/Transfer/LocaleTransfer.php +++ b/tests/Generated/Shared/Transfer/LocaleTransfer.php @@ -69,5 +69,4 @@ public function getLocaleName() { return $this->localeName; } - } diff --git a/tests/Generated/Shared/Transfer/LocalizedAttributesTransfer.php b/tests/Generated/Shared/Transfer/LocalizedAttributesTransfer.php index 3b87f9b..a63ecd2 100644 --- a/tests/Generated/Shared/Transfer/LocalizedAttributesTransfer.php +++ b/tests/Generated/Shared/Transfer/LocalizedAttributesTransfer.php @@ -29,7 +29,7 @@ class LocalizedAttributesTransfer extends AbstractTransfer * * @return $this */ - public function setLocale(LocaleTransfer $locale = null) + public function setLocale(?LocaleTransfer $locale = null) { $this->locale = $locale; $this->modifiedProperties[self::LOCALE] = true; @@ -54,7 +54,7 @@ public function getLocale() * * @return $this */ - public function setAttributes(array $attributes = null) + public function setAttributes(?array $attributes = null) { if ($attributes === null) { $attributes = []; diff --git a/tests/Generated/Shared/Transfer/LocalizedUrlTransfer.php b/tests/Generated/Shared/Transfer/LocalizedUrlTransfer.php index d8f7886..7112c88 100644 --- a/tests/Generated/Shared/Transfer/LocalizedUrlTransfer.php +++ b/tests/Generated/Shared/Transfer/LocalizedUrlTransfer.php @@ -52,7 +52,7 @@ public function getUrl() * * @return $this */ - public function setLocale(LocaleTransfer $locale = null) + public function setLocale(?LocaleTransfer $locale = null) { $this->locale = $locale; $this->modifiedProperties[self::LOCALE] = true; diff --git a/tests/Generated/Shared/Transfer/ProductAbstractTransfer.php b/tests/Generated/Shared/Transfer/ProductAbstractTransfer.php index 6d19d26..aa95d1a 100644 --- a/tests/Generated/Shared/Transfer/ProductAbstractTransfer.php +++ b/tests/Generated/Shared/Transfer/ProductAbstractTransfer.php @@ -20,10 +20,12 @@ class ProductAbstractTransfer extends AbstractTransfer * @var array */ protected $fields = []; + /** * @var int */ protected $idProductAbstract; + /** * @param int $idProductAbstract * @@ -35,6 +37,7 @@ public function setIdProductAbstract($idProductAbstract) $this->modifiedProperties[self::ID_PRODUCT_ABSTRACT] = true; return $this; } + /** * @module ProductApi * @@ -64,7 +67,7 @@ public function requireIdProductAbstract() * * @return $this */ - public function setAttributes(array $attributes = null) + public function setAttributes(?array $attributes = null) { if ($attributes === null) { $attributes = []; @@ -118,7 +121,7 @@ public function getLocalizedAttributes() * * @return $this */ - public function setStoreRelation(StoreRelationTransfer $storeRelation = null) + public function setStoreRelation(?StoreRelationTransfer $storeRelation = null) { $this->storeRelation = $storeRelation; $this->modifiedProperties[self::STORE_RELATION] = true; @@ -160,5 +163,4 @@ public function getSku() { return $this->sku; } - -} \ No newline at end of file +} diff --git a/tests/Generated/Shared/Transfer/ProductUrlTransfer.php b/tests/Generated/Shared/Transfer/ProductUrlTransfer.php index 2f645ff..7bb462b 100644 --- a/tests/Generated/Shared/Transfer/ProductUrlTransfer.php +++ b/tests/Generated/Shared/Transfer/ProductUrlTransfer.php @@ -85,5 +85,4 @@ public function addUrl(LocalizedUrlTransfer $url) return $this; } - } diff --git a/tests/Generated/Shared/Transfer/StoreRelationTransfer.php b/tests/Generated/Shared/Transfer/StoreRelationTransfer.php index 8bbeb18..8532e7b 100644 --- a/tests/Generated/Shared/Transfer/StoreRelationTransfer.php +++ b/tests/Generated/Shared/Transfer/StoreRelationTransfer.php @@ -36,7 +36,7 @@ class StoreRelationTransfer extends AbstractTransfer * * @return $this */ - public function setIdStores(array $idStores = null) + public function setIdStores(?array $idStores = null) { if ($idStores === null) { $idStores = []; @@ -97,6 +97,4 @@ public function addStores(StoreTransfer $stores) return $this; } - - } diff --git a/tests/Generated/Shared/Transfer/UrlTransfer.php b/tests/Generated/Shared/Transfer/UrlTransfer.php index 43bd7ba..46769d5 100644 --- a/tests/Generated/Shared/Transfer/UrlTransfer.php +++ b/tests/Generated/Shared/Transfer/UrlTransfer.php @@ -173,5 +173,4 @@ public function getIdUrl() { return $this->idUrl; } - } diff --git a/tests/Orm/Zed/Url/Persistence/Base/SpyUrl.php b/tests/Orm/Zed/Url/Persistence/Base/SpyUrl.php index cbf2a0f..cb30022 100644 --- a/tests/Orm/Zed/Url/Persistence/Base/SpyUrl.php +++ b/tests/Orm/Zed/Url/Persistence/Base/SpyUrl.php @@ -4,4 +4,4 @@ class SpyUrl { -} \ No newline at end of file +} diff --git a/tests/Orm/Zed/Url/Persistence/Base/SpyUrlQuery.php b/tests/Orm/Zed/Url/Persistence/Base/SpyUrlQuery.php index 72b6517..4fd3cf9 100644 --- a/tests/Orm/Zed/Url/Persistence/Base/SpyUrlQuery.php +++ b/tests/Orm/Zed/Url/Persistence/Base/SpyUrlQuery.php @@ -4,4 +4,4 @@ class SpyUrlQuery { -} \ No newline at end of file +} diff --git a/tests/_bootstrap.php b/tests/_bootstrap.php index 7d3edf2..88dfe0b 100644 --- a/tests/_bootstrap.php +++ b/tests/_bootstrap.php @@ -21,4 +21,4 @@ if (!defined('APPLICATION_ROOT_DIR')) { $stream = vfsStream::setup('root'); define('APPLICATION_ROOT_DIR', $stream->url()); -} \ No newline at end of file +} diff --git a/tests/_data/config_default.php b/tests/_data/config_default.php index 1d30d74..da6ce6b 100644 --- a/tests/_data/config_default.php +++ b/tests/_data/config_default.php @@ -13,4 +13,4 @@ 'SprykerShop', 'SprykerEco', 'Spryker', -]; \ No newline at end of file +]; diff --git a/tests/_data/stores.php b/tests/_data/stores.php index 4a511d7..f5bfcfb 100644 --- a/tests/_data/stores.php +++ b/tests/_data/stores.php @@ -15,4 +15,4 @@ 'currencyIsoCode' => 'EUR', 'currencyIsoCodes' => ['EUR'], ], -]; \ No newline at end of file +];