Skip to content

Commit 1f32d1f

Browse files
committed
Remove useless code and tags
1 parent a32a049 commit 1f32d1f

File tree

5 files changed

+13
-62
lines changed

5 files changed

+13
-62
lines changed

features/http_cache/tags.feature

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Feature: Cache invalidation trough HTTP Cache tags
1717
"""
1818
Then the response status code should be 201
1919
And the header "Cache-Tags" should not exist
20-
And "/relation_embedders,/related_dummies,/third_levels,/relation_embedders/1,/related_dummies/1,/third_levels/1" IRIs should be purged
20+
And "/relation_embedders,/related_dummies,/third_levels" IRIs should be purged
2121

2222
Scenario: Tags must be set for items
2323
When I send a "GET" request to "/relation_embedders/1"
@@ -53,7 +53,7 @@ Feature: Cache invalidation trough HTTP Cache tags
5353
"""
5454
Then the response status code should be 200
5555
And the header "Cache-Tags" should not exist
56-
And "/relation_embedders,/relation_embedders/1,/related_dummies/1,/third_levels/1" IRIs should be purged
56+
And "/relation_embedders,/relation_embedders/1" IRIs should be purged
5757

5858
@dropSchema
5959
Scenario: Purge item and the related collection on update

src/Bridge/Doctrine/EventListener/PurgeHttpCacheListener.php

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use ApiPlatform\Core\Api\IriConverterInterface;
1717
use ApiPlatform\Core\Api\ResourceClassResolverInterface;
1818
use ApiPlatform\Core\Exception\InvalidArgumentException;
19+
use ApiPlatform\Core\HttpCache\PurgerInterface;
1920
use Doctrine\ORM\Event\OnFlushEventArgs;
2021
use Psr\Container\ContainerInterface;
2122
use Symfony\Component\HttpFoundation\RequestStack;
@@ -29,42 +30,38 @@
2930
*/
3031
final class PurgeHttpCacheListener
3132
{
32-
private $requestStack;
33+
private $purger;
3334
private $iriConverter;
3435
private $resourceClassResolver;
3536

36-
public function __construct(RequestStack $requestStack, IriConverterInterface $iriConverter, ResourceClassResolverInterface $resourceClassResolver)
37+
public function __construct(PurgerInterface $purger, IriConverterInterface $iriConverter, ResourceClassResolverInterface $resourceClassResolver)
3738
{
38-
$this->requestStack = $requestStack;
39+
$this->purger = $purger;
3940
$this->iriConverter = $iriConverter;
4041
$this->resourceClassResolver = $resourceClassResolver;
4142
}
4243

4344
public function onFlush(OnFlushEventArgs $eventArgs)
4445
{
45-
if (!$request = $this->requestStack->getCurrentRequest()) {
46-
return;
47-
}
48-
49-
$resources = $request->attributes->get('_resources', []);
46+
$tags = [];
5047
$uow = $eventArgs->getEntityManager()->getUnitOfWork();
5148

5249
foreach ($uow->getScheduledEntityInsertions() as $entity) {
53-
$resources = $this->purge($resources, $entity, false);
50+
$tags = $this->gatherTags($tags, $entity, false);
5451
}
5552

5653
foreach ($uow->getScheduledEntityUpdates() as $entity) {
57-
$resources = $this->purge($resources, $entity, true);
54+
$tags = $this->gatherTags($tags, $entity, true);
5855
}
5956

6057
foreach ($uow->getScheduledEntityDeletions() as $entity) {
61-
$resources = $this->purge($resources, $entity, true);
58+
$tags = $this->gatherTags($tags, $entity, true);
6259
}
6360

64-
$request->attributes->set('_resources', $resources);
61+
$this->purger->purge($tags);
6562
}
6663

67-
private function purge(array $resources, $entity, bool $purgeItem): array
64+
private function gatherTags(array $resources, $entity, bool $purgeItem): array
6865
{
6966
try {
7067
$resourceClass = $this->resourceClassResolver->getResourceClass($entity);

src/Bridge/Symfony/Bundle/Resources/config/doctrine_orm.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
</service>
105105

106106
<service id="api_platform.doctrine.listener.http_cache.purge" class="ApiPlatform\Core\Bridge\Doctrine\EventListener\PurgeHttpCacheListener">
107-
<argument type="service" id="request_stack" />
107+
<argument type="service" id="api_platform.http_cache.purger" />
108108
<argument type="service" id="api_platform.iri_converter" />
109109
<argument type="service" id="api_platform.resource_class_resolver" />
110110

src/Bridge/Symfony/Bundle/Resources/config/http_cache_tags.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,5 @@
1313

1414
<tag name="kernel.event_listener" event="kernel.response" method="onKernelResponse" priority="-2" />
1515
</service>
16-
17-
<!-- The onKernelView method must be executed after the validation (32) but before the write (64) -->
18-
<service id="api_platform.http_cache.listener.response.purge" class="ApiPlatform\Core\HttpCache\EventListener\PurgeListener">
19-
<argument type="service" id="api_platform.http_cache.purger" />
20-
21-
<tag name="kernel.event_listener" event="kernel.terminate" method="onKernelTerminate" />
22-
</service>
2316
</services>
2417
</container>

src/HttpCache/EventListener/PurgeListener.php

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)