<?php
namespace App\Service;
use App\Entity\Profile;
use Doctrine\Persistence\Event\LifecycleEventArgs;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Doctrine\ORM\Events;
use Symfony\Component\String\Slugger\AsciiSlugger;
class SlugUrlCreator implements EventSubscriberInterface
{
public function postPersist(LifecycleEventArgs $args)
{
$entity = $args->getObject();
$entityManager = $args->getObjectManager();
if($entity instanceof Profile){
$slugger = new AsciiSlugger();
$slug = strtolower($slugger->slug($entity->getId().'-'.$entity->getName()));
$entity->setUrl($slug);
$entityManager->flush();
}
}
public static function getSubscribedEvents(): array
{
return [
Events::postPersist
];
}
}