Skip to content

Commit 4387884

Browse files
ENGCOM-8079: Update FlushCacheByTags to use after plugins instead of around plugins #27077
- Merge Pull Request #27077 from navarr/magento2:navarr/update-flush-cache-by-tags - Merged commits: 1. 86d8b9b 2. 46c09c6 3. 2ef99f9 4. e8c63a7 5. b7c9c19 6. 5734a6c 7. 13673b2 8. 6b5a983
2 parents 51b53be + 6b5a983 commit 4387884

File tree

2 files changed

+22
-21
lines changed

2 files changed

+22
-21
lines changed

lib/internal/Magento/Framework/App/Cache/FlushCacheByTags.php

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,36 +56,40 @@ public function __construct(
5656
}
5757

5858
/**
59-
* Clean cache on save object
59+
* Clean cache when object is saved
6060
*
6161
* @param AbstractResource $subject
62-
* @param \Closure $proceed
62+
* @param AbstractResource $result
6363
* @param AbstractModel $object
6464
* @return AbstractResource
6565
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
6666
*/
67-
public function aroundSave(AbstractResource $subject, \Closure $proceed, AbstractModel $object): AbstractResource
68-
{
69-
$result = $proceed($object);
67+
public function afterSave(
68+
AbstractResource $subject,
69+
AbstractResource $result,
70+
AbstractModel $object
71+
): AbstractResource {
7072
$tags = $this->tagResolver->getTags($object);
7173
$this->cleanCacheByTags($tags);
7274

7375
return $result;
7476
}
7577

7678
/**
77-
* Clean cache on delete object
79+
* Clean cache when object is deleted
7880
*
7981
* @param AbstractResource $subject
80-
* @param \Closure $proceed
82+
* @param AbstractResource $result
8183
* @param AbstractModel $object
8284
* @return AbstractResource
8385
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
8486
*/
85-
public function aroundDelete(AbstractResource $subject, \Closure $proceed, AbstractModel $object): AbstractResource
86-
{
87+
public function afterDelete(
88+
AbstractResource $subject,
89+
AbstractResource $result,
90+
AbstractModel $object
91+
): AbstractResource {
8792
$tags = $this->tagResolver->getTags($object);
88-
$result = $proceed($object);
8993
$this->cleanCacheByTags($tags);
9094

9195
return $result;
@@ -102,11 +106,12 @@ private function cleanCacheByTags(array $tags): void
102106
if (!$tags) {
103107
return;
104108
}
109+
$uniqueTags = null;
105110
foreach ($this->cacheList as $cacheType) {
106111
if ($this->cacheState->isEnabled($cacheType)) {
107112
$this->cachePool->get($cacheType)->clean(
108113
\Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG,
109-
\array_unique($tags)
114+
$uniqueTags = $uniqueTags ?? \array_unique($tags)
110115
);
111116
}
112117
}

lib/internal/Magento/Framework/App/Test/Unit/Cache/FlushCacheByTagsTest.php

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ protected function setUp(): void
6161
/**
6262
* @return void
6363
*/
64-
public function testAroundSave(): void
64+
public function testAfterSave(): void
6565
{
6666
$resource = $this->getMockBuilder(AbstractResource::class)
6767
->disableOriginalConstructor()
@@ -71,11 +71,9 @@ public function testAroundSave(): void
7171
->getMockForAbstractClass();
7272
$this->tagResolver->expects($this->atLeastOnce())->method('getTags')->with($model)->willReturn([]);
7373

74-
$result = $this->plugin->aroundSave(
74+
$result = $this->plugin->afterSave(
75+
$resource,
7576
$resource,
76-
function () use ($resource) {
77-
return $resource;
78-
},
7977
$model
8078
);
8179

@@ -85,7 +83,7 @@ function () use ($resource) {
8583
/**
8684
* @return void
8785
*/
88-
public function testAroundDelete(): void
86+
public function testAfterDelete(): void
8987
{
9088
$resource = $this->getMockBuilder(AbstractResource::class)
9189
->disableOriginalConstructor()
@@ -95,11 +93,9 @@ public function testAroundDelete(): void
9593
->getMockForAbstractClass();
9694
$this->tagResolver->expects($this->atLeastOnce())->method('getTags')->with($model)->willReturn([]);
9795

98-
$result = $this->plugin->aroundDelete(
96+
$result = $this->plugin->afterDelete(
97+
$resource,
9998
$resource,
100-
function () use ($resource) {
101-
return $resource;
102-
},
10399
$model
104100
);
105101

0 commit comments

Comments
 (0)