custom/plugins/RhiemUserProducts/src/Subscriber/Cache.php line 46

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Rhiem\RhiemUserProducts\Subscriber;
  3. use Rhiem\RhiemUserProducts\Entities\ProductGroup\ProductGroupEntity;
  4. use Rhiem\RhiemUserProducts\RhiemUserProducts;
  5. use Shopware\Core\Content\Category\Event\CategoryRouteCacheKeyEvent;
  6. use Shopware\Core\Content\Product\Events\ProductListingRouteCacheKeyEvent;
  7. use Shopware\Core\Content\Product\Events\ProductListingRouteCacheTagsEvent;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. class Cache implements EventSubscriberInterface
  10. {
  11.     public static function getSubscribedEvents()
  12.     {
  13.         return [
  14.             ProductListingRouteCacheKeyEvent::class => 'onProductListingRouteCacheKeyEvent',
  15.             ProductListingRouteCacheTagsEvent::class => 'onProductListingRouteCacheTagsEvent',
  16.             CategoryRouteCacheKeyEvent::class => 'onCategoryRouteCacheKeyEvent',
  17.         ];
  18.     }
  19.     public function onProductListingRouteCacheKeyEvent(ProductListingRouteCacheKeyEvent $event)
  20.     {
  21.         $parts $event->getParts();
  22.         $context $event->getContext();
  23.         if ($context->getCustomer()) {
  24.             $productGroup $context->getCustomer()->getExtension('rhiem_product_group_id');
  25.             if ($productGroup instanceof ProductGroupEntity) {
  26.                 $productGroupId $productGroup->getId();
  27.             } else {
  28.                 $productGroupId RhiemUserProducts::FALLBACK_PRODUCT_GROUP_ID;
  29.             }
  30.         } else {
  31.             $productGroupId RhiemUserProducts::FALLBACK_PRODUCT_GROUP_ID;
  32.         }
  33.         array_push($partsmd5(json_encode([$productGroupId])));
  34.         $event->setParts($parts);
  35.     }
  36.     public function onProductListingRouteCacheTagsEvent(ProductListingRouteCacheTagsEvent $event)
  37.     {
  38.         $tags $event->getTags();
  39.         $context $event->getContext();
  40.         if ($context->getCustomer()) {
  41.             $productGroup $context->getCustomer()->getExtension('rhiem_product_group_id');
  42.             if ($productGroup instanceof ProductGroupEntity) {
  43.                 $productGroupId $productGroup->getId();
  44.             } else {
  45.                 $productGroupId RhiemUserProducts::FALLBACK_PRODUCT_GROUP_ID;
  46.             }
  47.         } else {
  48.             $productGroupId RhiemUserProducts::FALLBACK_PRODUCT_GROUP_ID;
  49.         }
  50.         array_push($tagsmd5(json_encode([$productGroupId])));
  51.     }
  52.     public function onCategoryRouteCacheKeyEvent(CategoryRouteCacheKeyEvent $event){
  53.         $parts $event->getParts();
  54.         $context $event->getContext();
  55.         if ($context->getCustomer()) {
  56.             $productGroup $context->getCustomer()->getExtension('rhiem_product_group_id');
  57.             if ($productGroup instanceof ProductGroupEntity) {
  58.                 $productGroupId $productGroup->getId();
  59.             } else {
  60.                 $productGroupId RhiemUserProducts::FALLBACK_PRODUCT_GROUP_ID;
  61.             }
  62.         } else {
  63.             $productGroupId RhiemUserProducts::FALLBACK_PRODUCT_GROUP_ID;
  64.         }
  65.         array_push($partsmd5(json_encode([$productGroupId])));
  66.         $event->setParts($parts);
  67.     }
  68. }