src/Profile/EventSubscriber/ProfileSlugSubscriber.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Profile\EventSubscriber;
  3. use App\Profile\Model\Profile;
  4. use App\Profile\Service\ProfileSlugGenerator;
  5. use Pimcore\Event\DataObjectEvents;
  6. use Pimcore\Event\Model\DataObjectEvent;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. class ProfileSlugSubscriber implements EventSubscriberInterface
  9. {
  10.   public function __construct(protected ProfileSlugGenerator $slugger)
  11.   {
  12.   }
  13.   public function onPimcoreDataobjectPreUpdate(DataObjectEvent $event)
  14.   {
  15.     $object $event->getObject();
  16.     if (!($object instanceof Profile)) {
  17.       return;
  18.     }
  19.     $slug $this->slugger->generate($object);
  20.     $object->setSlug($slug);
  21.   }
  22.   public static function getSubscribedEvents()
  23.   {
  24.     return [
  25.             DataObjectEvents::PRE_UPDATE => 'onPimcoreDataobjectPreUpdate',
  26.         ];
  27.   }
  28. }