src/AppBundle/EventListener/DataObjectPreUpdateListener.php line 62

Open in your IDE?
  1. <?php
  2. namespace AppBundle\EventListener;
  3. use AppBundle\Services\Listeners\OrderListenerService;
  4. use AppBundle\Services\Listeners\PatchListenerService;
  5. use AppBundle\Services\Listeners\PatternListenerService;
  6. use AppBundle\Services\Listeners\SkuListenerService;
  7. use Exception;
  8. use Pimcore\Event\Model\DataObjectEvent;
  9. use Pimcore\Model\DataObject;
  10. use Pimcore\Model\DataObject\Patch;
  11. use Pimcore\Model\DataObject\Pattern;
  12. use Pimcore\Model\DataObject\Sku;
  13. class DataObjectPreUpdateListener
  14. {
  15.     /**
  16.      * @var OrderListenerService
  17.      */
  18.     protected $orderListenerService;
  19.     /**
  20.      * @var PatternListenerService
  21.      */
  22.     protected $patternListenerService;
  23.     /**
  24.      * @var SkuListenerService
  25.      */
  26.     protected $skuListenerService;
  27.     /**
  28.      * @var PatchListenerService
  29.      */
  30.     protected $patchListenerService;
  31.     /**
  32.      * DataObjectPreUpdateListener constructor.
  33.      * @param OrderListenerService $orderListenerService
  34.      * @param PatternListenerService $patternListenerService
  35.      * @param SkuListenerService $skuListenerService
  36.      * @param PatchListenerService $patchListenerService
  37.      */
  38.     public function __construct(
  39.         OrderListenerService $orderListenerService,
  40.         PatternListenerService $patternListenerService,
  41.         SkuListenerService $skuListenerService,
  42.         PatchListenerService $patchListenerService
  43.     )
  44.     {
  45.         $this->orderListenerService $orderListenerService;
  46.         $this->patternListenerService $patternListenerService;
  47.         $this->skuListenerService $skuListenerService;
  48.         $this->patchListenerService $patchListenerService;
  49.     }
  50.     /**
  51.      * @param DataObjectEvent $event
  52.      * @throws Exception
  53.      */
  54.     public function onPreUpdate(DataObjectEvent $event)
  55.     {
  56.         /** @var DataObject $object */
  57.         $object $event->getObject();
  58.         switch (true) {
  59.             case $object instanceof Sku:
  60.                 if ($object->getPublished()) {
  61.                     $this->skuListenerService->postAddAndPreUpdateEvent($objecttrue);
  62.                 }
  63.                 break;
  64.             case $object instanceof Patch:
  65.                 if ($object->getPublished()) {
  66.                     $this->patchListenerService->postAddAndPreUpdateEvent($objecttrue);
  67.                 }
  68.                 break;
  69.             case $object instanceof Pattern:
  70.                 if ($object->getPublished()) {
  71.                     $this->patternListenerService->postAddAndPreUpdateEvent($objecttrue);
  72.                 }
  73.                 break;
  74.             case $object instanceof DataObject\Order:
  75.                 if ($object->getPublished()) {
  76.                     $this->orderListenerService->postAddAndPreUpdateEvent($object);
  77.                 }
  78.                 break;
  79.             default:
  80.                 break;
  81.         }
  82.     }
  83. }