src/EventSubscriber/ProjectSubscriber.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\FormulaireInput;
  4. use App\Entity\Projet;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use EasyCorp\Bundle\EasyAdminBundle\Event\AfterEntityPersistedEvent;
  8. use Psr\Log\LoggerInterface;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. class ProjectSubscriber implements EventSubscriberInterface
  11. {
  12.     private $entityManager;
  13.     private ManagerRegistry $manager;
  14.     public function __construct(
  15.         ManagerRegistry $manager,
  16.         EntityManagerInterface $entityManager,
  17.         LoggerInterface $logger
  18.     ) {
  19.         $this->manager $manager;
  20.         $this->entityManager $entityManager;
  21.         $this->logger $logger;
  22.     }
  23.     public static function getSubscribedEvents()
  24.     {
  25.         return [
  26.             AfterEntityPersistedEvent::class => ['afterAdd'],
  27.         ];
  28.     }
  29.     public function afterAdd(AfterEntityPersistedEvent $event)
  30.     {
  31.         $entity $event->getEntityInstance();
  32.         if ($entity instanceof Projet) {
  33.             $inputtext = new FormulaireInput();
  34.             $inputtext->setType('text');
  35.             $inputtext->setProjet($entity);
  36.             $this->entityManager->persist($inputtext);
  37.             $inputnumber = new FormulaireInput();
  38.             $inputnumber->setType('number');
  39.             $inputnumber->setProjet($entity);
  40.             $this->entityManager->persist($inputnumber);
  41.             $inputtel = new FormulaireInput();
  42.             $inputtel->setType('tel');
  43.             $inputtel->setProjet($entity);
  44.             $this->entityManager->persist($inputtel);
  45.             $inputemail = new FormulaireInput();
  46.             $inputemail->setType('email');
  47.             $inputemail->setProjet($entity);
  48.             $this->entityManager->persist($inputemail);
  49.             $inputtextarea = new FormulaireInput();
  50.             $inputtextarea->setType('textarea');
  51.             $inputtextarea->setProjet($entity);
  52.             $this->entityManager->persist($inputtextarea);
  53.             $inputradio = new FormulaireInput();
  54.             $inputradio->setType('radio');
  55.             $inputradio->setProjet($entity);
  56.             $this->entityManager->persist($inputradio);
  57.             $inputcheckbox = new FormulaireInput();
  58.             $inputcheckbox->setType('checkbox');
  59.             $inputcheckbox->setProjet($entity);
  60.             $this->entityManager->persist($inputcheckbox);
  61.             $inputlist = new FormulaireInput();
  62.             $inputlist->setType('list');
  63.             $inputlist->setProjet($entity);
  64.             $this->entityManager->persist($inputlist);
  65.             $this->entityManager->flush();
  66.         } else {
  67.             return;
  68.         }
  69.     }
  70. }