Просмотр исходного кода

Remise au propre des repositories

Sangfroid 1 месяц назад
Родитель
Сommit
be6f175948

+ 10 - 0
.phpactor.json

@@ -0,0 +1,10 @@
+{
+    "$schema": "/phpactor.schema.json",
+    "symfony.enabled": true,
+    "indexer.exclude_patterns": [
+        "/vendor/**/Tests/**/*",
+        "/vendor/**/tests/**/*",
+        "/var/cache/**/*",
+        "/vendor/composer/**/*"
+    ]
+}

+ 22 - 18
src/Repository/CommentaireRepository.php

@@ -7,6 +7,8 @@ use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
 use Doctrine\Persistence\ManagerRegistry;
 
 /**
+ * @extends ServiceEntityRepository<Commentaire>
+ *
  * @method Commentaire|null find($id, $lockMode = null, $lockVersion = null)
  * @method Commentaire|null findOneBy(array $criteria, array $orderBy = null)
  * @method Commentaire[]    findAll()
@@ -19,38 +21,40 @@ class CommentaireRepository extends ServiceEntityRepository
         parent::__construct($registry, Commentaire::class);
     }
 
-    public function findLast ($limit = 5): array
+    public function findLast(int $limit = 5): array
     {
-        return $qb = $this->createQueryBuilder('c')
-            ->innerJoin('c.film', 'flm')->addSelect('flm')
-            ->innerJoin('c.user', 'usr')->addSelect('usr')
+        return $qb = $this->createQueryBuilder("c")
+            ->innerJoin("c.film", "flm")
+            ->addSelect("flm")
+            ->innerJoin("c.user", "usr")
+            ->addSelect("usr")
             ->setMaxResults($limit)
-            ->orderBy('c.id', 'DESC')
+            ->orderBy("c.id", "DESC")
             ->getQuery()
             ->getResult();
     }
 
     public function countCommentairesParMois(): array
     {
-        return $this->createQueryBuilder('c')
-            ->select("DATE_FORMAT(c.dateSubmitted, '%Y-%m') as month, COUNT(c.id) as entryCount")
-            ->where('c.dateSubmitted IS NOT NULL')
-            ->groupBy('month')
-            ->orderBy('month', 'ASC')
+        return $this->createQueryBuilder("c")
+            ->select(
+                "DATE_FORMAT(c.dateSubmitted, '%Y-%m') as month, COUNT(c.id) as entryCount",
+            )
+            ->where("c.dateSubmitted IS NOT NULL")
+            ->groupBy("month")
+            ->orderBy("month", "ASC")
             ->getQuery()
-            ->getResult()
-        ;
+            ->getResult();
     }
 
     public function findFirstDateAdded(): ?Commentaire
     {
         // Construire une requête pour obtenir la première date d'ajout
-        return $this->createQueryBuilder('c')
-            ->select('c.dateSubmitted')
-            ->orderBy('c.dateSubmitted', 'ASC')  // Trier par date croissante
-            ->setMaxResults(1)  // Limiter à 1 résultat (la première date)
+        return $this->createQueryBuilder("c")
+            ->select("c.dateSubmitted")
+            ->orderBy("c.dateSubmitted", "ASC") // Trier par date croissante
+            ->setMaxResults(1) // Limiter à 1 résultat (la première date)
             ->getQuery()
-            ->getOneOrNullResult();  // Récupérer le premier résultat ou null
+            ->getOneOrNullResult(); // Récupérer le premier résultat ou null
     }
-
 }

+ 158 - 159
src/Repository/FilmRepository.php

@@ -9,6 +9,8 @@ use Doctrine\ORM\QueryBuilder;
 use Doctrine\Persistence\ManagerRegistry;
 
 /**
+ * @extends ServiceEntityRepository<Film>
+ *
  * @method Film|null find($id, $lockMode = null, $lockVersion = null)
  * @method Film|null findOneBy(array $criteria, array $orderBy = null)
  * @method Film[]    findAll()
@@ -22,257 +24,254 @@ class FilmRepository extends ServiceEntityRepository
         parent::__construct($registry, Film::class);
     }
 
-    public function findFilm($id): Film
+    public function findFilm(int $id): Film
     {
-        $qb = $this->createQueryBuilder('f');
+        $qb = $this->createQueryBuilder("f");
         $query = $qb
-            ->select('f.titre', 'f.annee')
-            ->where('f.id = :id')
-            ->setParameter('id', $id)
+            ->select("f.titre", "f.annee")
+            ->where("f.id = :id")
+            ->setParameter("id", $id)
             ->getQuery();
         return $query->getSingleResult();
     }
 
-    public function queryFilmWithGenre(array $genreNames, int $page = 1, array $filters = []) : QueryBuilder
-    {
+    /**
+     * @param array<int, string> $genreNames
+     * @param array<string, string> $filters
+     */
+    public function queryFilmWithGenre(
+        array $genreNames,
+        int $page = 1,
+        array $filters = [],
+    ): QueryBuilder {
         $qb = $this->queryFilter($page, $filters);
-        $qb
-            ->innerJoin('f.genres', 'g')
-            ->addSelect('f');
+        $qb->innerJoin("f.genres", "g")->addSelect("f");
 
-        $qb
-            ->andWhere($qb->expr()->in('g.name', ':genrenames'))
-            ->setParameter('genrenames', $genreNames)
-        ;
+        $qb->andWhere($qb->expr()->in("g.name", ":genrenames"))->setParameter(
+            "genrenames",
+            $genreNames,
+        );
 
         return $qb;
     }
 
+    /**
+     * @param array<int, string> $genreNames
+     */
     public function findFilmWithGenre(array $genreNames): array
     {
-        return $this->queryFilmWithGenre($genreNames)
-            ->getQuery()
-            ->getResult()
-        ;
+        return $this->queryFilmWithGenre($genreNames)->getQuery()->getResult();
     }
 
-    public function queryFilmWithReal(array $realisateursNames, int $page = 1, array $filters = []): QueryBuilder
-    {
+    /**
+     * @param array<int, string> $realisateursNames
+     * @param array<string, string> $filters
+     */
+    public function queryFilmWithReal(
+        array $realisateursNames,
+        int $page = 1,
+        array $filters = [],
+    ): QueryBuilder {
         $qb = $this->queryFilter($page, $filters);
-        $qb
-            ->leftJoin('f.realisateurs', 'rea')
-            ->addSelect('f')
-            ->andWhere($qb->expr()->in('rea.nomComplet', ':realisateurs'))
-            ->setParameter('realisateurs', $realisateursNames)
-        ;
+        $qb->leftJoin("f.realisateurs", "rea")
+            ->addSelect("f")
+            ->andWhere($qb->expr()->in("rea.nomComplet", ":realisateurs"))
+            ->setParameter("realisateurs", $realisateursNames);
         return $qb;
     }
 
+    /**
+     * @param array<int, string> $realisateursNames
+     */
     public function findFilmWithReal(array $realisateursNames): array
     {
         return $this->queryFilmWithReal($realisateursNames)
             ->getQuery()
-            ->getResult()
-        ;
+            ->getResult();
     }
 
-    public function findFilmWithRealLike($query): array
+    public function findFilmWithRealLike(string $query): array
     {
-        $qb = $this->createQueryBuilder('f');
-        $qb
-            ->innerJoin('f.realisateurs', 'r')
-            ->addSelect('f');
-        $qb
-            ->where($qb->expr()->like('r.nomComplet', ':nomComplet'))
-            ->setParameter('nomComplet', '%'.$query.'%');
+        $qb = $this->createQueryBuilder("f");
+        $qb->innerJoin("f.realisateurs", "r")->addSelect("f");
+        $qb->where(
+            $qb->expr()->like("r.nomComplet", ":nomComplet"),
+        )->setParameter("nomComplet", "%" . $query . "%");
 
         return $qb->getQuery()->getResult();
-
     }
 
-    public function findFilmWithGenreLike($genreName): array
+    public function findFilmWithGenreLike(string $genreName): array
     {
-        $qb = $this->createQueryBuilder('f');
-        $qb
-            ->innerJoin('f.genres', 'g')
-            ->addSelect('f');
+        $qb = $this->createQueryBuilder("f");
+        $qb->innerJoin("f.genres", "g")->addSelect("f");
 
-        $qb->where($qb->expr()->like('g.name', ':genreName'))
-            ->setParameter('genreName', '%'.$genreName.'%');
+        $qb->where($qb->expr()->like("g.name", ":genreName"))->setParameter(
+            "genreName",
+            "%" . $genreName . "%",
+        );
 
-        return $qb
-            ->getQuery()
-            ->getResult();
+        return $qb->getQuery()->getResult();
     }
 
-    public function queryFilter(int $page = 1, array $filters = []): QueryBuilder
-    {
-        $qb =  $this->createQueryBuilder('f')
-            ->orderBy('f.'.($filters['sortBy'] ?? 'dateSubmited'), $filters['sortOrder'] ?? 'DESC')
-        ;
-
-        if (!empty($filters['userWantToView'])) {
-            $qb
-                ->leftJoin('f.usersWantToView', 'wan')
-                ->andWhere($qb->expr()->in('wan', ':user'))
-                ->setParameter('user', $filters['userWantToView'])
-            ;
+    /**
+     * @param array<string, string> $filters
+     */
+    public function queryFilter(
+        int $page = 1,
+        array $filters = [],
+    ): QueryBuilder {
+        $qb = $this->createQueryBuilder("f")->orderBy(
+            "f." . ($filters["sortBy"] ?? "dateSubmited"),
+            $filters["sortOrder"] ?? "DESC",
+        );
+
+        if (!empty($filters["userWantToView"])) {
+            $qb->leftJoin("f.usersWantToView", "wan")
+                ->andWhere($qb->expr()->in("wan", ":user"))
+                ->setParameter("user", $filters["userWantToView"]);
         }
 
-        if (!empty($filters['limit'])) {
-            $limit = (int)$filters['limit'];
-            $qb->setFirstResult(($page * $limit) - $limit);
+        if (!empty($filters["limit"])) {
+            $limit = (int) $filters["limit"];
+            $qb->setFirstResult($page * $limit - $limit);
             $qb->setMaxResults($limit);
         }
-    
-        if (!empty($filters['note'])) {
-            $qb
-                ->andWhere('f.note >= :note')
-                ->setParameter('note', $filters['note'])
-            ;
-        }    
-        
-        if (!empty($filters['username'])) {
-            $qb
-                ->andWhere('f.authered = :authered')
-                ->setParameter('authered', $filters['username'])
-            ;
+
+        if (!empty($filters["note"])) {
+            $qb->andWhere("f.note >= :note")->setParameter(
+                "note",
+                $filters["note"],
+            );
+        }
+
+        if (!empty($filters["username"])) {
+            $qb->andWhere("f.authered = :authered")->setParameter(
+                "authered",
+                $filters["username"],
+            );
         }
         return $qb;
-        
     }
 
-    public function queryTous ($page = 1, array $filters = []): QueryBuilder
+    /**
+     * @param array<string, string> $filters
+     */
+    public function queryTous(int $page = 1, array $filters = []): QueryBuilder
     {
         $qb = $this->queryFilter($page, $filters)
-            ->leftJoin('f.authered', 'aut')->addSelect('aut')
-            ->leftJoin('f.genres', 'gen')->addSelect('gen')
-            ->leftJoin('f.realisateurs', 'rea')->addSelect('rea')
-        ;
+            ->leftJoin("f.authered", "aut")
+            ->addSelect("aut")
+            ->leftJoin("f.genres", "gen")
+            ->addSelect("gen")
+            ->leftJoin("f.realisateurs", "rea")
+            ->addSelect("rea");
         return $qb;
     }
 
     public function findProchaines(): array
     {
-        $date = new \DateTime('now');
+        $date = new \DateTime("now");
         $interval = new \DateInterval("P20D");
         $interval->invert = 1;
         $date->add($interval);
-        $qb = $this->createQueryBuilder('f');
-        $qb
-            ->leftJoin('f.authered', 'aut')->addSelect('aut')
-            ->leftJoin('f.genres', 'gen')->addSelect('gen')
-            ->leftJoin('f.realisateurs', 'rea')->addSelect('rea')
-            ->where('f.dateSortie > :date')
-            ->setParameter('date', $date)
-            ->orderBy('f.dateSortie', 'ASC');
-        return $qb
-            ->getQuery()
-            ->getResult();
+        $qb = $this->createQueryBuilder("f");
+        $qb->leftJoin("f.authered", "aut")
+            ->addSelect("aut")
+            ->leftJoin("f.genres", "gen")
+            ->addSelect("gen")
+            ->leftJoin("f.realisateurs", "rea")
+            ->addSelect("rea")
+            ->where("f.dateSortie > :date")
+            ->setParameter("date", $date)
+            ->orderBy("f.dateSortie", "ASC");
+        return $qb->getQuery()->getResult();
     }
 
     public function findFilmWithExistentTitre(string $titre): array
     {
-        return $this->createQueryBuilder('f')
-            ->leftJoin('f.realisateurs', 'r')->addSelect('r')
-            ->where('f.titre = :titre')
-            ->setParameter('titre', $titre)
+        return $this->createQueryBuilder("f")
+            ->leftJoin("f.realisateurs", "r")
+            ->addSelect("r")
+            ->where("f.titre = :titre")
+            ->setParameter("titre", $titre)
             ->getQuery()
-            ->getResult()
-        ;
+            ->getResult();
     }
 
     public function findFilmInImdb(Film $film): array
     {
         $reals = [];
-        foreach($film->getRealisateurs() as $real) {
+        foreach ($film->getRealisateurs() as $real) {
             $reals[] = $real->getNomComplet();
         }
-        $qb = $this->createQueryBuilder('f');
-        $qb
-            ->andWhere('f.titre = :titre')
-            ->setParameter('titre', $film->getTitre())
-            ->innerJoin('f.realisateurs', 'rea')
-            ->andWhere($qb->expr()->in('rea.nomComplet', ':reals'))
-            ->setParameter('reals', $reals)
-        ;
-        return $qb
-            ->getQuery()
-            ->getResult()
-        ;
+        $qb = $this->createQueryBuilder("f");
+        $qb->andWhere("f.titre = :titre")
+            ->setParameter("titre", $film->getTitre())
+            ->innerJoin("f.realisateurs", "rea")
+            ->andWhere($qb->expr()->in("rea.nomComplet", ":reals"))
+            ->setParameter("reals", $reals);
+        return $qb->getQuery()->getResult();
     }
 
     public function findRandom(int $nb = 5): array
     {
-        $films = $this->createQueryBuilder('f')
-            ->select('f.id')
+        $films = $this->createQueryBuilder("f")
+            ->select("f.id")
             ->getQuery()
-            ->getResult()
-        ;
-        $ids = array_flip(array_map(fn($value): int => $value['id'], $films));
+            ->getResult();
+        $ids = array_flip(array_map(fn($value): int => $value["id"], $films));
 
         $random = array_rand($ids, $nb);
 
-        $qb = $this->createQueryBuilder('f');
-        $qb->andWhere($qb->expr()->in('f.id', $random));
-        
-        return $qb
-            ->getQuery()
-            ->getResult()
-        ;
+        $qb = $this->createQueryBuilder("f");
+        $qb->andWhere($qb->expr()->in("f.id", $random));
+
+        return $qb->getQuery()->getResult();
     }
 
     public function countAjoutsParMois(): array
     {
-        return $this->createQueryBuilder('f')
-            ->select("DATE_FORMAT(f.dateSubmited, '%Y-%m') as month, COUNT(f.id) as entryCount")
-            ->groupBy('month')
-            ->orderBy('month', 'ASC')
+        return $this->createQueryBuilder("f")
+            ->select(
+                "DATE_FORMAT(f.dateSubmited, '%Y-%m') as month, COUNT(f.id) as entryCount",
+            )
+            ->groupBy("month")
+            ->orderBy("month", "ASC")
             ->getQuery()
-            ->getResult()
-        ;
+            ->getResult();
     }
 
     public function countFilmsVusBy(User $user): int
     {
-        $qb = $this->createQueryBuilder('f');
-        $qb
-            ->select('COUNT(f.id)')
-            ->leftJoin('f.usersWhoSeen', 'wan')
-            ->andWhere($qb->expr()->in('wan', ':user'))
-            ->setParameter('user', $user)
-        ;
-
-        return $qb
-            ->getQuery()
-            ->getSingleScalarResult()
-        ;
+        $qb = $this->createQueryBuilder("f");
+        $qb->select("COUNT(f.id)")
+            ->leftJoin("f.usersWhoSeen", "wan")
+            ->andWhere($qb->expr()->in("wan", ":user"))
+            ->setParameter("user", $user);
+
+        return $qb->getQuery()->getSingleScalarResult();
     }
 
     public function countFilmsFavorisBy(User $user): int
     {
-        $qb = $this->createQueryBuilder('f');
-        $qb
-            ->select('COUNT(f.id)')
-            ->leftJoin('f.usersWantToView', 'wan')
-            ->andWhere($qb->expr()->in('wan', ':user'))
-            ->setParameter('user', $user)
-        ;
-
-        return $qb
-            ->getQuery()
-            ->getSingleScalarResult()
-        ;
+        $qb = $this->createQueryBuilder("f");
+        $qb->select("COUNT(f.id)")
+            ->leftJoin("f.usersWantToView", "wan")
+            ->andWhere($qb->expr()->in("wan", ":user"))
+            ->setParameter("user", $user);
+
+        return $qb->getQuery()->getSingleScalarResult();
     }
 
     public function findFirstDateAdded(): ?Film
     {
         // Construire une requête pour obtenir la première date d'ajout
-        return $this->createQueryBuilder('f')
-            ->select('f.dateSubmited')
-            ->orderBy('f.dateSubmited', 'ASC')  // Trier par date croissante
-            ->setMaxResults(1)  // Limiter à 1 résultat (la première date)
+        return $this->createQueryBuilder("f")
+            ->select("f.dateSubmited")
+            ->orderBy("f.dateSubmited", "ASC") // Trier par date croissante
+            ->setMaxResults(1) // Limiter à 1 résultat (la première date)
             ->getQuery()
-            ->getOneOrNullResult();  // Récupérer le premier résultat ou null
+            ->getOneOrNullResult(); // Récupérer le premier résultat ou null
     }
 }

+ 14 - 17
src/Repository/GenreRepository.php

@@ -7,42 +7,39 @@ use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
 use Doctrine\Persistence\ManagerRegistry;
 
 /**
+ * @extends ServiceEntityRepository<Genre>
+ *
  * @method Genre|null find($id, $lockMode = null, $lockVersion = null)
  * @method Genre|null findOneBy(array $criteria, array $orderBy = null)
  * @method Genre[]    findAll()
  * @method Genre[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  */
 
-/**
- * GenreRepository
- *
- * This class was generated by the Doctrine ORM. Add your own custom
- * repository methods below.
- */
 class GenreRepository extends ServiceEntityRepository
 {
     public function __construct(ManagerRegistry $registry)
     {
-        parent::__construct($registry, Genre::class);   
+        parent::__construct($registry, Genre::class);
     }
 
-    public function findGenres (): array
+    /**
+     * @@return array<int, string>
+     */
+    public function findGenres(): array
     {
-        $qb = $this->createQueryBuilder('g');
-        $query = $qb
-            ->select('g.name')
-            ->getQuery();
+        $qb = $this->createQueryBuilder("g");
+        $query = $qb->select("g.name")->getQuery();
 
         return $query->getArrayResult();
     }
 
     public function findGenreLike(?string $query = null): ?array
     {
-        $qb = $this->createQueryBuilder('g');
-        $qb
-            ->where($qb->expr()->like('g.name', ':genreName'))
-            ->setParameter('genreName', '%'.$query.'%')
-        ;
+        $qb = $this->createQueryBuilder("g");
+        $qb->where($qb->expr()->like("g.name", ":genreName"))->setParameter(
+            "genreName",
+            "%" . $query . "%",
+        );
         return $qb->getQuery()->getResult();
     }
 }

+ 18 - 1
src/Repository/MediaVideoRepository.php

@@ -2,12 +2,29 @@
 
 namespace App\Repository;
 
+use App\Entity\MediaVideo;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<MediaVideo>
+ *
+ * @method MediaVideo|null find($id, $lockMode = null, $lockVersion = null)
+ * @method MediaVideo|null findOneBy(array $criteria, array $orderBy = null)
+ * @method MediaVideo[]    findAll()
+ * @method MediaVideo[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+
 /**
  * MediaVideoRepository
  *
  * This class was generated by the Doctrine ORM. Add your own custom
  * repository methods below.
  */
-class MediaVideoRepository extends \Doctrine\ORM\EntityRepository
+class MediaVideoRepository extends ServiceEntityRepository
 {
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, MediaVideo::class);
+    }
 }

+ 5 - 5
src/Repository/ProfileRepository.php

@@ -8,6 +8,7 @@ use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
 use Doctrine\Persistence\ManagerRegistry;
 
 /**
+ * @extends ServiceEntityRepository<Proile>
  * @method Profile|null find($id, $lockMode = null, $lockVersion = null)
  * @method Profile|null findOneBy(array $criteria, array $orderBy = null)
  * @method Profile[]    findAll()
@@ -22,12 +23,11 @@ class ProfileRepository extends ServiceEntityRepository
 
     public function findByUser(User $user): ?Profile
     {
-        return $this->createQueryBuilder('p')
-            ->andWhere('p.user = :user')
-            ->setParameter('user', $user->getId())
+        return $this->createQueryBuilder("p")
+            ->andWhere("p.user = :user")
+            ->setParameter("user", $user->getId())
             ->getQuery()
-            ->getOneOrNullResult()
-        ;
+            ->getOneOrNullResult();
     }
 
     // /**

+ 28 - 30
src/Repository/RealisateurRepository.php

@@ -7,6 +7,7 @@ use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
 use Doctrine\Persistence\ManagerRegistry;
 
 /**
+ * @extends ServiceEntityRepository<Realisateur>
  * @method Realisateur|null find($id, $lockMode = null, $lockVersion = null)
  * @method Realisateur|null findOneBy(array $criteria, array $orderBy = null)
  * @method Realisateur[]    findAll()
@@ -17,37 +18,36 @@ class RealisateurRepository extends ServiceEntityRepository
 {
     public function __construct(ManagerRegistry $registry)
     {
-        parent::__construct($registry, Realisateur::class);  
+        parent::__construct($registry, Realisateur::class);
     }
 
     public function findByNom(string $nom): array
     {
-        $qb = $this->createQueryBuilder ('r');
+        $qb = $this->createQueryBuilder("r");
         $expr = $qb->expr();
         $query = $qb
-            ->select('r.id', 'r.nom', 'r.prenom')
-            ->where(
-                $expr->like('r.nom', ':nom'))
-            ->setParameter('nom', $nom.'%')
+            ->select("r.id", "r.nom", "r.prenom")
+            ->where($expr->like("r.nom", ":nom"))
+            ->setParameter("nom", $nom . "%")
             ->getQuery();
-            
+
         return $query->getResult();
     }
 
     public function findByNomComplet(string $nomComplet): array
     {
-        $qb = $this->createQueryBuilder ('r');
+        $qb = $this->createQueryBuilder("r");
         $expr = $qb->expr();
-        $tableau = explode(' ', $nomComplet);
+        $tableau = explode(" ", $nomComplet);
 
         if (count($tableau) == 1) {
             $premier = $tableau[0];
             $orPremier = $expr->orX(
-                $expr->like('r.nom', ':premier'),
-                $expr->like('r.prenom', ':premier')
+                $expr->like("r.nom", ":premier"),
+                $expr->like("r.prenom", ":premier"),
             );
             $andExpression = $expr->andX($orPremier);
-            $qb->setParameter('premier', $premier.'%');
+            $qb->setParameter("premier", $premier . "%");
         }
 
         if (count($tableau) > 1) {
@@ -55,47 +55,45 @@ class RealisateurRepository extends ServiceEntityRepository
             $deuxieme = $tableau[1];
 
             $orPremier = $expr->orX(
-                $expr->eq('r.nom', ':premier'),
-                $expr->eq('r.prenom', ':premier')
+                $expr->eq("r.nom", ":premier"),
+                $expr->eq("r.prenom", ":premier"),
             );
 
             $orDeuxieme = $expr->orX(
-                $expr->like('r.nom', ':deuxieme'),
-                $expr->like('r.prenom', ':deuxieme')
+                $expr->like("r.nom", ":deuxieme"),
+                $expr->like("r.prenom", ":deuxieme"),
             );
 
             $andExpression = $expr->andX($orPremier, $orDeuxieme);
 
-            $qb
-                ->setParameter('premier', $premier)
-                ->setParameter('deuxieme', $deuxieme.'%');
+            $qb->setParameter("premier", $premier)->setParameter(
+                "deuxieme",
+                $deuxieme . "%",
+            );
         }
 
         $query = $qb
-            ->select('r.id', 'r.nom', 'r.prenom')
+            ->select("r.id", "r.nom", "r.prenom")
             ->where($andExpression)
             ->getQuery();
 
         return $query->getResult();
     }
 
-    public function findNomsComplets (): array
+    public function findNomsComplets(): array
     {
-        $qb = $this->createQueryBuilder('r');
-        $query = $qb
-            ->select('r.nomComplet')
-            ->getQuery();
+        $qb = $this->createQueryBuilder("r");
+        $query = $qb->select("r.nomComplet")->getQuery();
 
         return $query->getArrayResult();
     }
 
     public function findRealisateurLike(?string $query = null): ?array
     {
-        $qb = $this->createQueryBuilder('r');
-        $qb
-            ->where($qb->expr()->like('r.nomComplet', ':realName'))
-            ->setParameter('realName', '%'.$query.'%')
-        ;
+        $qb = $this->createQueryBuilder("r");
+        $qb->where(
+            $qb->expr()->like("r.nomComplet", ":realName"),
+        )->setParameter("realName", "%" . $query . "%");
         return $qb->getQuery()->getResult();
     }
 }

+ 7 - 9
src/Repository/UserRepository.php

@@ -7,6 +7,7 @@ use Doctrine\Persistence\ManagerRegistry;
 use App\Entity\User;
 
 /**
+ * @extends ServiceEntityRepository<User>
  * @method User|null find($id, $lockMode = null, $lockVersion = null)
  * @method User|null findOneBy(array $criteria, array $orderBy = null)
  * @method User[]    findAll()
@@ -22,15 +23,12 @@ class UserRepository extends ServiceEntityRepository
 
     public function findUser(int $userId): User
     {
-        $qb = $this
-            ->createQueryBuilder('u')
-            ->leftJoin('u.films', 'f')
-            ->addSelect('f')
-            ->where('u.id = :user')
-            ->setParameter('user' , $userId);
+        $qb = $this->createQueryBuilder("u")
+            ->leftJoin("u.films", "f")
+            ->addSelect("f")
+            ->where("u.id = :user")
+            ->setParameter("user", $userId);
 
-        return $qb
-            ->getQuery()
-            ->getSingleResult();
+        return $qb->getQuery()->getSingleResult();
     }
 }

+ 11 - 10
src/Service/GenreManager.php

@@ -3,17 +3,19 @@
 namespace App\Service;
 
 use App\Entity\Genre;
-use App\Entity\Film;
+use App\Repository\FilmRepository;
+use App\Repository\GenreRepository;
 use Doctrine\ORM\EntityManagerInterface;
 
 /**
  * Class GenreManager
  */
-class GenreManager {
-
-    public function __construct(protected EntityManagerInterface $em)
-    {
-    }
+class GenreManager
+{
+    public function __construct(
+        protected EntityManagerInterface $em,
+        protected FilmRepository $genreRepository,
+    ) {}
 
     public function add(Genre $genre): void
     {
@@ -28,12 +30,11 @@ class GenreManager {
 
     public function del(Genre $genre): void
     {
-        $films = $this->em->getRepository(Film::class)->findFilmWithGenre(array($genre->getName()));
-        foreach ($films as $film)
-        {
+        $films = $this->genreRepository->findFilmWithGenre([$genre->getName()]);
+        foreach ($films as $film) {
             $film->removeGenre($genre);
         }
         $this->em->remove($genre);
         $this->em->flush();
     }
-}
+}