<?php
namespace App\EventSubscriber;
use App\Entity\FormulaireInput;
use App\Entity\Projet;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry;
use EasyCorp\Bundle\EasyAdminBundle\Event\AfterEntityPersistedEvent;
use Psr\Log\LoggerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ProjectSubscriber implements EventSubscriberInterface
{
private $entityManager;
private ManagerRegistry $manager;
public function __construct(
ManagerRegistry $manager,
EntityManagerInterface $entityManager,
LoggerInterface $logger
) {
$this->manager = $manager;
$this->entityManager = $entityManager;
$this->logger = $logger;
}
public static function getSubscribedEvents()
{
return [
AfterEntityPersistedEvent::class => ['afterAdd'],
];
}
public function afterAdd(AfterEntityPersistedEvent $event)
{
$entity = $event->getEntityInstance();
if ($entity instanceof Projet) {
$inputtext = new FormulaireInput();
$inputtext->setType('text');
$inputtext->setProjet($entity);
$this->entityManager->persist($inputtext);
$inputnumber = new FormulaireInput();
$inputnumber->setType('number');
$inputnumber->setProjet($entity);
$this->entityManager->persist($inputnumber);
$inputtel = new FormulaireInput();
$inputtel->setType('tel');
$inputtel->setProjet($entity);
$this->entityManager->persist($inputtel);
$inputemail = new FormulaireInput();
$inputemail->setType('email');
$inputemail->setProjet($entity);
$this->entityManager->persist($inputemail);
$inputtextarea = new FormulaireInput();
$inputtextarea->setType('textarea');
$inputtextarea->setProjet($entity);
$this->entityManager->persist($inputtextarea);
$inputradio = new FormulaireInput();
$inputradio->setType('radio');
$inputradio->setProjet($entity);
$this->entityManager->persist($inputradio);
$inputcheckbox = new FormulaireInput();
$inputcheckbox->setType('checkbox');
$inputcheckbox->setProjet($entity);
$this->entityManager->persist($inputcheckbox);
$inputlist = new FormulaireInput();
$inputlist->setType('list');
$inputlist->setProjet($entity);
$this->entityManager->persist($inputlist);
$this->entityManager->flush();
} else {
return;
}
}
}