vendor/pimcore/portal-engine/src/EventSubscriber/AssetUpdateSubscriber.php line 69

Open in your IDE?
  1. <?php
  2. /**
  3.  * Pimcore
  4.  *
  5.  * This source file is available under following license:
  6.  * - Pimcore Commercial License (PCL)
  7.  *
  8.  *  @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  9.  *  @license    http://www.pimcore.org/license     PCL
  10.  */
  11. namespace Pimcore\Bundle\PortalEngineBundle\EventSubscriber;
  12. use Pimcore\Bundle\PortalEngineBundle\Service\StatisticsTracker\Elasticsearch\AssetUpdateTracker;
  13. use Pimcore\Event\AssetEvents;
  14. use Pimcore\Event\Model\AssetEvent;
  15. use Pimcore\Model\Asset;
  16. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  17. /**
  18.  * Class AssetUpdateSubscriber
  19.  *
  20.  * @package Pimcore\Bundle\PortalEngineBundle\EventSubscriber
  21.  */
  22. class AssetUpdateSubscriber implements EventSubscriberInterface
  23. {
  24.     /** @var AssetUpdateTracker */
  25.     protected $assetUpdateTracker;
  26.     /**
  27.      * AssetUpdateSubscriber constructor.
  28.      *
  29.      * @param AssetUpdateTracker $assetUpdateTracker
  30.      */
  31.     public function __construct(AssetUpdateTracker $assetUpdateTracker)
  32.     {
  33.         $this->assetUpdateTracker $assetUpdateTracker;
  34.     }
  35.     /**
  36.      * Returns an array of event names this subscriber wants to listen to.
  37.      *
  38.      * The array keys are event names and the value can be:
  39.      *
  40.      *  * The method name to call (priority defaults to 0)
  41.      *  * An array composed of the method name to call and the priority
  42.      *  * An array of arrays composed of the method names to call and respective
  43.      *    priorities, or 0 if unset
  44.      *
  45.      * For instance:
  46.      *
  47.      *  * ['eventName' => 'methodName']
  48.      *  * ['eventName' => ['methodName', $priority]]
  49.      *  * ['eventName' => [['methodName1', $priority], ['methodName2']]]
  50.      *
  51.      * @return array The event names to listen to
  52.      */
  53.     public static function getSubscribedEvents()
  54.     {
  55.         return [
  56.             AssetEvents::POST_UPDATE => 'updateAsset',
  57.         ];
  58.     }
  59.     /**
  60.      * @param AssetEvent $event
  61.      */
  62.     public function updateAsset(AssetEvent $event)
  63.     {
  64.         $asset $event->getAsset();
  65.         if ($asset instanceof Asset) {
  66.             $this->assetUpdateTracker->trackEvent(['asset' => $asset]);
  67.         }
  68.     }
  69. }