<?php
namespace App\Profile\EventSubscriber;
use App\Profile\Model\Profile;
use App\Profile\Service\ProfileSlugGenerator;
use Pimcore\Event\DataObjectEvents;
use Pimcore\Event\Model\DataObjectEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ProfileSlugSubscriber implements EventSubscriberInterface
{
public function __construct(protected ProfileSlugGenerator $slugger)
{
}
public function onPimcoreDataobjectPreUpdate(DataObjectEvent $event)
{
$object = $event->getObject();
if (!($object instanceof Profile)) {
return;
}
$slug = $this->slugger->generate($object);
$object->setSlug($slug);
}
public static function getSubscribedEvents()
{
return [
DataObjectEvents::PRE_UPDATE => 'onPimcoreDataobjectPreUpdate',
];
}
}