Skip to content

Commit 7df183b

Browse files
authored
Merge branch '2.4-develop' into Fix-cron-schedule-deadlock
2 parents 96029b5 + 8b7d949 commit 7df183b

File tree

158 files changed

+2504
-1042
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

158 files changed

+2504
-1042
lines changed

app/code/Magento/Catalog/Model/CategoryLink.php

+18-17
Original file line numberDiff line numberDiff line change
@@ -3,39 +3,41 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
declare(strict_types=1);
67

78
namespace Magento\Catalog\Model;
89

10+
use Magento\Catalog\Api\Data\CategoryLinkExtensionInterface;
11+
use Magento\Catalog\Api\Data\CategoryLinkInterface;
12+
use Magento\Framework\Model\AbstractExtensibleModel;
13+
914
/**
1015
* @codeCoverageIgnore
1116
*/
12-
class CategoryLink extends \Magento\Framework\Api\AbstractExtensibleObject implements
13-
\Magento\Catalog\Api\Data\CategoryLinkInterface
17+
class CategoryLink extends AbstractExtensibleModel implements CategoryLinkInterface
1418
{
15-
/**#@+
16-
* Constants
17-
*/
18-
const KEY_POSITION = 'position';
19-
const KEY_CATEGORY_ID = 'category_id';
20-
/**#@-*/
19+
public const KEY_POSITION = 'position';
20+
public const KEY_CATEGORY_ID = 'category_id';
2121

2222
/**
23-
* {@inheritdoc}
23+
* @inheritdoc
2424
*/
2525
public function getPosition()
2626
{
27-
return $this->_get(self::KEY_POSITION);
27+
return $this->getData(self::KEY_POSITION);
2828
}
2929

3030
/**
31-
* {@inheritdoc}
31+
* @inheritdoc
3232
*/
3333
public function getCategoryId()
3434
{
35-
return $this->_get(self::KEY_CATEGORY_ID);
35+
return $this->getData(self::KEY_CATEGORY_ID);
3636
}
3737

3838
/**
39+
* @inheritDoc
40+
*
3941
* @param int $position
4042
* @return $this
4143
*/
@@ -56,7 +58,7 @@ public function setCategoryId($categoryId)
5658
}
5759

5860
/**
59-
* {@inheritdoc}
61+
* @inheritdoc
6062
*
6163
* @return \Magento\Catalog\Api\Data\CategoryLinkExtensionInterface|null
6264
*/
@@ -66,14 +68,13 @@ public function getExtensionAttributes()
6668
}
6769

6870
/**
69-
* {@inheritdoc}
71+
* @inheritdoc
7072
*
7173
* @param \Magento\Catalog\Api\Data\CategoryLinkExtensionInterface $extensionAttributes
7274
* @return $this
7375
*/
74-
public function setExtensionAttributes(
75-
\Magento\Catalog\Api\Data\CategoryLinkExtensionInterface $extensionAttributes
76-
) {
76+
public function setExtensionAttributes(CategoryLinkExtensionInterface $extensionAttributes)
77+
{
7778
return $this->_setExtensionAttributes($extensionAttributes);
7879
}
7980
}

app/code/Magento/Catalog/Model/Indexer/Category/Flat/Plugin/StoreGroup.php

+8-27
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,13 @@
55
*/
66
namespace Magento\Catalog\Model\Indexer\Category\Flat\Plugin;
77

8-
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
9-
use Magento\Framework\Model\AbstractModel;
10-
use Magento\Framework\Indexer\IndexerRegistry;
118
use Magento\Catalog\Model\Indexer\Category\Flat\State;
9+
use Magento\Framework\Indexer\IndexerRegistry;
10+
use Magento\Framework\Model\AbstractModel;
11+
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
1212

1313
class StoreGroup
1414
{
15-
/**
16-
* @var bool
17-
*/
18-
private $needInvalidating;
19-
2015
/**
2116
* @var IndexerRegistry
2217
*/
@@ -48,35 +43,21 @@ protected function validate(AbstractModel $group)
4843
return $group->dataHasChangedFor('root_category_id') && !$group->isObjectNew();
4944
}
5045

51-
/**
52-
* Check if need invalidate flat category indexer
53-
*
54-
* @param AbstractDb $subject
55-
* @param AbstractModel $group
56-
*
57-
* @return void
58-
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
59-
*/
60-
public function beforeSave(AbstractDb $subject, AbstractModel $group)
61-
{
62-
$this->needInvalidating = $this->validate($group);
63-
}
64-
6546
/**
6647
* Invalidate flat category indexer if root category changed for store group
6748
*
6849
* @param AbstractDb $subject
69-
* @param AbstractDb $objectResource
70-
*
50+
* @param AbstractDb $result
51+
* @param AbstractModel $group
7152
* @return AbstractDb
7253
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
7354
*/
74-
public function afterSave(AbstractDb $subject, AbstractDb $objectResource)
55+
public function afterSave(AbstractDb $subject, AbstractDb $result, AbstractModel $group)
7556
{
76-
if ($this->needInvalidating && $this->state->isFlatEnabled()) {
57+
if ($this->validate($group) && $this->state->isFlatEnabled()) {
7758
$this->indexerRegistry->get(State::INDEXER_ID)->invalidate();
7859
}
7960

80-
return $objectResource;
61+
return $result;
8162
}
8263
}

app/code/Magento/Catalog/Model/Indexer/Category/Product/Plugin/StoreGroup.php

+8-26
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,14 @@
55
*/
66
namespace Magento\Catalog\Model\Indexer\Category\Product\Plugin;
77

8-
use Magento\Framework\Indexer\IndexerRegistry;
9-
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
10-
use Magento\Framework\Model\AbstractModel;
118
use Magento\Catalog\Model\Indexer\Category\Product;
129
use Magento\Catalog\Model\Indexer\Category\Product\TableMaintainer;
10+
use Magento\Framework\Indexer\IndexerRegistry;
11+
use Magento\Framework\Model\AbstractModel;
12+
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
1313

1414
class StoreGroup
1515
{
16-
/**
17-
* @var bool
18-
*/
19-
private $needInvalidating;
20-
2116
/**
2217
* @var IndexerRegistry
2318
*/
@@ -40,36 +35,23 @@ public function __construct(
4035
$this->tableMaintainer = $tableMaintainer;
4136
}
4237

43-
/**
44-
* Check if need invalidate flat category indexer
45-
*
46-
* @param AbstractDb $subject
47-
* @param AbstractModel $group
48-
*
49-
* @return void
50-
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
51-
*/
52-
public function beforeSave(AbstractDb $subject, AbstractModel $group)
53-
{
54-
$this->needInvalidating = $this->validate($group);
55-
}
56-
5738
/**
5839
* Invalidate flat product
5940
*
6041
* @param AbstractDb $subject
61-
* @param AbstractDb $objectResource
42+
* @param AbstractDb $result
43+
* @param AbstractModel $group
6244
*
6345
* @return AbstractDb
6446
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
6547
*/
66-
public function afterSave(AbstractDb $subject, AbstractDb $objectResource)
48+
public function afterSave(AbstractDb $subject, AbstractDb $result, AbstractModel $group)
6749
{
68-
if ($this->needInvalidating) {
50+
if ($this->validate($group)) {
6951
$this->indexerRegistry->get(Product::INDEXER_ID)->invalidate();
7052
}
7153

72-
return $objectResource;
54+
return $result;
7355
}
7456

7557
/**

app/code/Magento/Catalog/Model/Indexer/Category/Product/Plugin/StoreView.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55
*/
66
namespace Magento\Catalog\Model\Indexer\Category\Product\Plugin;
77

8-
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
98
use Magento\Framework\Model\AbstractModel;
9+
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
1010

1111
class StoreView extends StoreGroup
1212
{
1313
/**
1414
* Validate changes for invalidating indexer
1515
*
16-
* @param \Magento\Framework\Model\AbstractModel $store
16+
* @param AbstractModel $store
1717
* @return bool
1818
*/
19-
protected function validate(\Magento\Framework\Model\AbstractModel $store)
19+
protected function validate(AbstractModel $store)
2020
{
2121
return $store->isObjectNew() || $store->dataHasChangedFor('group_id');
2222
}
@@ -36,7 +36,7 @@ public function afterSave(AbstractDb $subject, AbstractDb $objectResource, Abstr
3636
$this->tableMaintainer->createTablesForStore($store->getId());
3737
}
3838

39-
return parent::afterSave($subject, $objectResource);
39+
return parent::afterSave($subject, $objectResource, $store);
4040
}
4141

4242
/**

app/code/Magento/Catalog/Model/Indexer/Product/Eav/Plugin/StoreView.php

+17-11
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,46 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
67
namespace Magento\Catalog\Model\Indexer\Product\Eav\Plugin;
78

9+
use Magento\Catalog\Model\Indexer\Product\Eav\Processor;
10+
use Magento\Framework\Model\AbstractModel;
11+
use Magento\Store\Model\ResourceModel\Store;
12+
813
class StoreView
914
{
1015
/**
1116
* Product attribute indexer processor
1217
*
13-
* @var \Magento\Catalog\Model\Indexer\Product\Eav\Processor
18+
* @var Processor
1419
*/
1520
protected $_indexerEavProcessor;
1621

1722
/**
18-
* @param \Magento\Catalog\Model\Indexer\Product\Eav\Processor $indexerEavProcessor
23+
* @param Processor $indexerEavProcessor
1924
*/
20-
public function __construct(\Magento\Catalog\Model\Indexer\Product\Eav\Processor $indexerEavProcessor)
25+
public function __construct(Processor $indexerEavProcessor)
2126
{
2227
$this->_indexerEavProcessor = $indexerEavProcessor;
2328
}
2429

2530
/**
2631
* Before save handler
2732
*
28-
* @param \Magento\Store\Model\ResourceModel\Store $subject
29-
* @param \Magento\Framework\Model\AbstractModel $object
33+
* @param Store $subject
34+
* @param Store $result
35+
* @param AbstractModel $object
3036
*
31-
* @return void
37+
* @return Store
3238
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
3339
*/
34-
public function beforeSave(
35-
\Magento\Store\Model\ResourceModel\Store $subject,
36-
\Magento\Framework\Model\AbstractModel $object
37-
) {
38-
if ((!$object->getId() || $object->dataHasChangedFor('group_id')) && $object->getIsActive()) {
40+
public function afterSave(Store $subject, Store $result, AbstractModel $object)
41+
{
42+
if (($object->isObjectNew() || $object->dataHasChangedFor('group_id')) && $object->getIsActive()) {
3943
$this->_indexerEavProcessor->markIndexerAsInvalid();
4044
}
45+
46+
return $result;
4147
}
4248
}

app/code/Magento/Catalog/Model/Indexer/Product/Flat/Plugin/Store.php

+16-11
Original file line numberDiff line numberDiff line change
@@ -6,38 +6,43 @@
66

77
namespace Magento\Catalog\Model\Indexer\Product\Flat\Plugin;
88

9+
use Magento\Catalog\Model\Indexer\Product\Flat\Processor;
10+
use Magento\Framework\Model\AbstractModel;
11+
use Magento\Store\Model\ResourceModel\Store as StoreResourceModel;
12+
913
class Store
1014
{
1115
/**
1216
* Product flat indexer processor
1317
*
14-
* @var \Magento\Catalog\Model\Indexer\Product\Flat\Processor
18+
* @var Processor
1519
*/
1620
protected $_productFlatIndexerProcessor;
1721

1822
/**
19-
* @param \Magento\Catalog\Model\Indexer\Product\Flat\Processor $productFlatIndexerProcessor
23+
* @param Processor $productFlatIndexerProcessor
2024
*/
21-
public function __construct(\Magento\Catalog\Model\Indexer\Product\Flat\Processor $productFlatIndexerProcessor)
25+
public function __construct(Processor $productFlatIndexerProcessor)
2226
{
2327
$this->_productFlatIndexerProcessor = $productFlatIndexerProcessor;
2428
}
2529

2630
/**
2731
* Before save handler
2832
*
29-
* @param \Magento\Store\Model\ResourceModel\Store $subject
30-
* @param \Magento\Framework\Model\AbstractModel $object
33+
* @param StoreResourceModel $subject
34+
* @param StoreResourceModel $result
35+
* @param AbstractModel $object
3136
*
32-
* @return void
37+
* @return StoreResourceModel
3338
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
3439
*/
35-
public function beforeSave(
36-
\Magento\Store\Model\ResourceModel\Store $subject,
37-
\Magento\Framework\Model\AbstractModel $object
38-
) {
39-
if (!$object->getId() || $object->dataHasChangedFor('group_id')) {
40+
public function afterSave(StoreResourceModel $subject, StoreResourceModel $result, AbstractModel $object)
41+
{
42+
if ($object->isObjectNew() || $object->dataHasChangedFor('group_id')) {
4043
$this->_productFlatIndexerProcessor->markIndexerAsInvalid();
4144
}
45+
46+
return $result;
4247
}
4348
}

0 commit comments

Comments
 (0)