src/AppBundle/EventListener/DataObjectPreAddListener.php line 56

Open in your IDE?
  1. <?php
  2. namespace AppBundle\EventListener;
  3. use AppBundle\Services\Listeners\OrderListenerService;
  4. use AppBundle\Services\Listeners\PatternListenerService;
  5. use AppBundle\Services\Listeners\SkuListenerService;
  6. use Exception;
  7. use Pimcore;
  8. use Pimcore\Event\Model\DataObjectEvent;
  9. use Pimcore\Model\DataObject;
  10. use Pimcore\Model\DataObject\Order;
  11. use Pimcore\Model\DataObject\Pattern;
  12. use Pimcore\Model\DataObject\Sku;
  13. class DataObjectPreAddListener
  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.      * DataObjectPreAddListener constructor.
  29.      * @param OrderListenerService $orderListenerService
  30.      * @param PatternListenerService $patternListenerService
  31.      * @param SkuListenerService $skuListenerService
  32.      */
  33.     public function __construct(
  34.         OrderListenerService $orderListenerService,
  35.         PatternListenerService $patternListenerService,
  36.         SkuListenerService $skuListenerService
  37.     )
  38.     {
  39.         $this->orderListenerService $orderListenerService;
  40.         $this->patternListenerService $patternListenerService;
  41.         $this->skuListenerService $skuListenerService;
  42.     }
  43.     /**
  44.      * @param DataObjectEvent $event
  45.      * @throws Exception
  46.      */
  47.     public function onPreAdd(DataObjectEvent $event)
  48.     {
  49.         /** @var DataObject $object */
  50.         $object $event->getObject();
  51.         switch (true) {
  52.             case $object instanceof Sku:
  53.                 if (!Pimcore::$adminMode) {
  54.                     $this->skuListenerService->preAdd($object);
  55.                 }
  56.                 break;
  57.             case $object instanceof Pattern:
  58.                 if (!Pimcore::$adminMode) {
  59.                     $this->patternListenerService->preAdd($object);
  60.                 }
  61.                 break;
  62.             case $object instanceof Order:
  63.                 if (!Pimcore::$adminMode) {
  64.                     $this->orderListenerService->preAdd($object);
  65.                 }
  66.                 break;
  67.             default:
  68.                 break;
  69.         }
  70.     }
  71. }