src/AppBundle/EventListener/DataObjectPostAddListener.php line 64

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;
  9. use Pimcore\Event\Model\DataObjectEvent;
  10. use Pimcore\Model\DataObject;
  11. use Pimcore\Model\DataObject\Order;
  12. use Pimcore\Model\DataObject\Patch;
  13. use Pimcore\Model\DataObject\Pattern;
  14. class DataObjectPostAddListener
  15. {
  16.     /**
  17.      * @var OrderListenerService
  18.      */
  19.     protected $orderListenerService;
  20.     /**
  21.      * @var PatternListenerService
  22.      */
  23.     protected $patternListenerService;
  24.     /**
  25.      * @var SkuListenerService
  26.      */
  27.     protected $skuListenerService;
  28.     /**
  29.      * @var PatchListenerService
  30.      */
  31.     protected $patchListenerService;
  32.     /**
  33.      * DataObjectPostAddListener constructor.
  34.      * @param OrderListenerService $orderListenerService
  35.      * @param PatternListenerService $patternListenerService
  36.      * @param SkuListenerService $skuListenerService
  37.      * @param PatchListenerService $patchListenerService
  38.      */
  39.     public function __construct(
  40.         OrderListenerService $orderListenerService,
  41.         PatternListenerService $patternListenerService,
  42.         SkuListenerService $skuListenerService,
  43.         PatchListenerService $patchListenerService
  44.     )
  45.     {
  46.         $this->orderListenerService $orderListenerService;
  47.         $this->patternListenerService $patternListenerService;
  48.         $this->skuListenerService $skuListenerService;
  49.         $this->patchListenerService $patchListenerService;
  50.     }
  51.     /**
  52.      * @param DataObjectEvent $event
  53.      * @throws Exception
  54.      */
  55.     public function onPostAdd(DataObjectEvent $event)
  56.     {
  57.         /** @var DataObject $object */
  58.         $object $event->getObject();
  59.         switch (true) {
  60.             case $object instanceof Patch:
  61.                 if ($object->getPublished() && !Pimcore::$adminMode) {
  62.                     $this->patchListenerService->postAddAndPreUpdateEvent($object);
  63.                 }
  64.                 break;
  65.             case $object instanceof Pattern:
  66.                 if ($object->getPublished() && !Pimcore::$adminMode) {
  67.                     $this->patternListenerService->postAddAndPreUpdateEvent($object);
  68.                 }
  69.                 break;
  70.             case $object instanceof Order:
  71.                 if ($object->getPublished() && !Pimcore::$adminMode) {
  72.                     $this->orderListenerService->postAddAndPreUpdateEvent($object);
  73.                 }
  74.                 break;
  75.             default:
  76.                 break;
  77.         }
  78.     }
  79. }