1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?php
- namespace App\Service;
- use App\Entity\Commentaire;
- use Doctrine\Bundle\DoctrineBundle\Attribute\AsDoctrineListener;
- use Doctrine\ORM\Event\PostPersistEventArgs;
- use Doctrine\ORM\Event\PostRemoveEventArgs;
- use Doctrine\ORM\Event\PostUpdateEventArgs;
- use Doctrine\ORM\Events;
- use Doctrine\Persistence\Event\LifecycleEventArgs;
- #[AsDoctrineListener(event: Events::postPersist)]
- #[AsDoctrineListener(event: Events::postUpdate)]
- #[AsDoctrineListener(event: Events::postRemove)]
- class NoteListener
- {
- public function __construct(protected NoteMoyenne $noteMoyenne)
- {
- }
- public function postPersist(PostPersistEventArgs $args): void
- {
- $this->calculer($args);
- }
- public function postUpdate (PostUpdateEventArgs $args): void
- {
- $this->calculer($args);
- }
- public function postRemove (PostRemoveEventArgs $args): void
- {
- $this->calculer($args);
- }
- private function calculer (LifecycleEventArgs $args): void
- {
- $entity = $args->getObject();
- if (!$entity instanceof Commentaire) {
- return;
- }
- $this->noteMoyenne->calculerMoyenne($entity->getFilm());
- }
- }
|