diff --git a/app/code/Magento/CatalogUrlRewrite/Model/Category/Plugin/Category/Remove.php b/app/code/Magento/CatalogUrlRewrite/Model/Category/Plugin/Category/Remove.php index ccc0b9c83f287f5c5329f17250b59b39beda60d2..2617f3290ee0ec801fb1be73e274cc94f13af8b9 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/Category/Plugin/Category/Remove.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/Category/Plugin/Category/Remove.php @@ -5,45 +5,40 @@ */ namespace Magento\CatalogUrlRewrite\Model\Category\Plugin\Category; -use Magento\Catalog\Api\Data\CategoryInterface; -use Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider; -use Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator; -use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator; -use Magento\UrlRewrite\Model\UrlPersistInterface; use Magento\UrlRewrite\Service\V1\Data\UrlRewrite; -use Magento\Framework\App\ObjectManager; -use Magento\Framework\Serialize\Serializer\Json; class Remove { - /** @var UrlPersistInterface */ + /** @var \Magento\UrlRewrite\Model\UrlPersistInterface */ protected $urlPersist; - /** @var ProductUrlRewriteGenerator */ + /** @var \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator */ protected $productUrlRewriteGenerator; - /** @var ChildrenCategoriesProvider */ + /** @var \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider */ protected $childrenCategoriesProvider; - /** @var Json */ + /** @var \Magento\Framework\Serialize\Serializer\Json */ private $serializer; /** - * @param UrlPersistInterface $urlPersist - * @param ProductUrlRewriteGenerator $productUrlRewriteGenerator - * @param ChildrenCategoriesProvider $childrenCategoriesProvider - * @param Json|null $serializer + * @param \Magento\UrlRewrite\Model\UrlPersistInterface $urlPersist + * @param \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator $productUrlRewriteGenerator + * @param \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider $childrenCategoriesProvider + * @param \Magento\Framework\Serialize\Serializer\Json|null $serializer */ public function __construct( - UrlPersistInterface $urlPersist, - ProductUrlRewriteGenerator $productUrlRewriteGenerator, - ChildrenCategoriesProvider $childrenCategoriesProvider, - Json $serializer = null + \Magento\UrlRewrite\Model\UrlPersistInterface $urlPersist, + \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator $productUrlRewriteGenerator, + \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider $childrenCategoriesProvider, + \Magento\Framework\Serialize\Serializer\Json $serializer = null ) { $this->urlPersist = $urlPersist; $this->productUrlRewriteGenerator = $productUrlRewriteGenerator; $this->childrenCategoriesProvider = $childrenCategoriesProvider; - $this->serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class); + $this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()->get( + \Magento\Framework\Serialize\Serializer\Json::class + ); } /** @@ -51,14 +46,14 @@ class Remove * * @param \Magento\Catalog\Model\ResourceModel\Category $subject * @param \Closure $proceed - * @param CategoryInterface $category + * @param \Magento\Catalog\Api\Data\CategoryInterface $category * @return mixed * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundDelete( \Magento\Catalog\Model\ResourceModel\Category $subject, \Closure $proceed, - CategoryInterface $category + \Magento\Catalog\Api\Data\CategoryInterface $category ) { $categoryIds = $this->childrenCategoriesProvider->getChildrenIds($category, true); $categoryIds[] = $category->getId(); @@ -80,13 +75,13 @@ class Remove $this->urlPersist->deleteByData( [ UrlRewrite::ENTITY_ID => $categoryId, - UrlRewrite::ENTITY_TYPE => CategoryUrlRewriteGenerator::ENTITY_TYPE, + UrlRewrite::ENTITY_TYPE => \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator::ENTITY_TYPE, ] ); $this->urlPersist->deleteByData( [ UrlRewrite::METADATA => $this->serializer->serialize(['category_id' => $categoryId]), - UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE, + UrlRewrite::ENTITY_TYPE => \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator::ENTITY_TYPE, ] ); } diff --git a/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php b/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php index e334bf414013fa5f29570ebc09e95d439bbfa2bc..06f80e9c246970d53c15ea3478db3f989829846a 100644 --- a/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php +++ b/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php @@ -5,28 +5,20 @@ */ namespace Magento\CatalogUrlRewrite\Observer; -use Magento\Catalog\Model\Category; -use Magento\CatalogUrlRewrite\Model\CategoryBasedProductRewriteGenerator; -use Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator; -use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator; -use Magento\Framework\App\ObjectManager; -use Magento\Framework\Event\Observer as EventObserver; -use Magento\UrlRewrite\Model\UrlPersistInterface; use Magento\UrlRewrite\Service\V1\Data\UrlRewrite; -use Magento\Framework\Serialize\Serializer\Json; class UrlRewriteHandler { /** @var \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider */ protected $childrenCategoriesProvider; - /** @var CategoryUrlRewriteGenerator */ + /** @var \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator */ protected $categoryUrlRewriteGenerator; - /** @var ProductUrlRewriteGenerator */ + /** @var \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator */ protected $productUrlRewriteGenerator; - /** @var UrlPersistInterface */ + /** @var \Magento\UrlRewrite\Model\UrlPersistInterface */ protected $urlPersist; /** @var array */ @@ -35,43 +27,45 @@ class UrlRewriteHandler /** @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory */ protected $productCollectionFactory; - /** @var CategoryBasedProductRewriteGenerator */ + /** @var \Magento\CatalogUrlRewrite\Model\CategoryBasedProductRewriteGenerator */ private $categoryBasedProductRewriteGenerator; - /** @var Json */ + /** @var \Magento\Framework\Serialize\Serializer\Json */ private $serializer; /** * @param \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider $childrenCategoriesProvider - * @param CategoryUrlRewriteGenerator $categoryUrlRewriteGenerator - * @param ProductUrlRewriteGenerator $productUrlRewriteGenerator - * @param UrlPersistInterface $urlPersist + * @param \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator $categoryUrlRewriteGenerator + * @param \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator $productUrlRewriteGenerator + * @param \Magento\UrlRewrite\Model\UrlPersistInterface $urlPersist * @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory - * @param Json|null $serializer + * @param \Magento\Framework\Serialize\Serializer\Json|null $serializer */ public function __construct( \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider $childrenCategoriesProvider, - CategoryUrlRewriteGenerator $categoryUrlRewriteGenerator, - ProductUrlRewriteGenerator $productUrlRewriteGenerator, - UrlPersistInterface $urlPersist, + \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator $categoryUrlRewriteGenerator, + \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator $productUrlRewriteGenerator, + \Magento\UrlRewrite\Model\UrlPersistInterface $urlPersist, \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory, - Json $serializer = null + \Magento\Framework\Serialize\Serializer\Json $serializer = null ) { $this->childrenCategoriesProvider = $childrenCategoriesProvider; $this->categoryUrlRewriteGenerator = $categoryUrlRewriteGenerator; $this->productUrlRewriteGenerator = $productUrlRewriteGenerator; $this->urlPersist = $urlPersist; $this->productCollectionFactory = $productCollectionFactory; - $this->serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class); + $this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()->get( + \Magento\Framework\Serialize\Serializer\Json::class + ); } /** * Generate url rewrites for products assigned to category * - * @param Category $category + * @param \Magento\Catalog\Model\Category $category * @return array */ - public function generateProductUrlRewrites(Category $category) + public function generateProductUrlRewrites(\Magento\Catalog\Model\Category $category) { $this->isSkippedProduct = []; $saveRewriteHistory = $category->getData('save_rewrites_history'); @@ -107,12 +101,16 @@ class UrlRewriteHandler } /** - * @param Category $category + * @param \Magento\Catalog\Model\Category $category * @param int $storeId * @param bool $saveRewriteHistory * @return UrlRewrite[] */ - public function getCategoryProductsUrlRewrites(Category $category, $storeId, $saveRewriteHistory) + public function getCategoryProductsUrlRewrites( + \Magento\Catalog\Model\Category $category, + $storeId, + $saveRewriteHistory + ) { /** @var \Magento\Catalog\Model\ResourceModel\Product\Collection $productCollection */ $productCollection = $category->getProductCollection() @@ -140,23 +138,23 @@ class UrlRewriteHandler * Retrieve generator, which use single category for different products * * @deprecated - * @return CategoryBasedProductRewriteGenerator|mixed + * @return \Magento\CatalogUrlRewrite\Model\CategoryBasedProductRewriteGenerator|mixed */ private function getCategoryBasedProductRewriteGenerator() { if (!$this->categoryBasedProductRewriteGenerator) { - $this->categoryBasedProductRewriteGenerator = ObjectManager::getInstance() - ->get(CategoryBasedProductRewriteGenerator::class); + $this->categoryBasedProductRewriteGenerator = \Magento\Framework\App\ObjectManager::getInstance() + ->get(\Magento\CatalogUrlRewrite\Model\CategoryBasedProductRewriteGenerator::class); } return $this->categoryBasedProductRewriteGenerator; } /** - * @param Category $category + * @param \Magento\Catalog\Model\Category $category * @return void */ - public function deleteCategoryRewritesForChildren(Category $category) + public function deleteCategoryRewritesForChildren(\Magento\Catalog\Model\Category $category) { $categoryIds = $this->childrenCategoriesProvider->getChildrenIds($category, true); $categoryIds[] = $category->getId(); @@ -164,13 +162,15 @@ class UrlRewriteHandler $this->urlPersist->deleteByData( [ UrlRewrite::ENTITY_ID => $categoryId, - UrlRewrite::ENTITY_TYPE => CategoryUrlRewriteGenerator::ENTITY_TYPE, + UrlRewrite::ENTITY_TYPE => + \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator::ENTITY_TYPE, ] ); $this->urlPersist->deleteByData( [ UrlRewrite::METADATA => $this->serializer->serialize(['category_id' => $categoryId]), - UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE, + UrlRewrite::ENTITY_TYPE => + \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator::ENTITY_TYPE, ] ); } diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php index db6d0548fb7b81c4c0877053a24bf0eaccd0c3d9..66b18041977577f140800b9be54eb97016e1a404 100644 --- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php +++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php @@ -1,6 +1,6 @@ <?php /** - * Copyright © 2017 Magento. All rights reserved. + * Copyright © 2013-2017 Magento. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\CatalogUrlRewrite\Test\Unit\Observer; @@ -16,37 +16,37 @@ use Magento\Framework\Serialize\Serializer\Json; class UrlRewriteHandlerTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\CatalogUrlRewrite\Observer\UrlRewriteHandler + * @var UrlRewriteHandler */ protected $urlRewriteHandler; /** - * @var \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider|\PHPUnit_Framework_MockObject_MockObject + * @var ChildrenCategoriesProvider|\PHPUnit_Framework_MockObject_MockObject */ protected $childrenCategoriesProviderMock; /** - * @var \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator|\PHPUnit_Framework_MockObject_MockObject + * @var CategoryUrlRewriteGenerator|\PHPUnit_Framework_MockObject_MockObject */ protected $categoryUrlRewriteGeneratorMock; /** - * @var \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator|\PHPUnit_Framework_MockObject_MockObject + * @var ProductUrlRewriteGenerator|\PHPUnit_Framework_MockObject_MockObject */ protected $productUrlRewriteGeneratorMock; /** - * @var \Magento\UrlRewrite\Model\UrlPersistInterface|\PHPUnit_Framework_MockObject_MockObject + * @var UrlPersistInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $urlPersistMock; /** - * @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject + * @var CollectionFactory|\PHPUnit_Framework_MockObject_MockObject */ protected $collectionFactoryMock; /** - * @var \Magento\Framework\Serialize\SerializerInterface|\PHPUnit_Framework_MockObject_MockObject + * @var Json|\PHPUnit_Framework_MockObject_MockObject */ private $serializerMock;