Browse Source

Merge branch 'develop' into features/background

François Drouhard 2 years ago
parent
commit
b40c70481f

+ 4 - 4
composer.json

@@ -2,14 +2,14 @@
     "type": "project",
     "license": "proprietary",
     "require": {
-        "php": "^7.3",
+        "php": "^8.1",
         "ext-ctype": "*",
         "ext-iconv": "*",
         "composer/package-versions-deprecated": "1.11.99.2",
         "doctrine/annotations": "^1.0",
         "doctrine/doctrine-bundle": "^2.7",
         "doctrine/doctrine-migrations-bundle": "^3.2",
-        "doctrine/orm": "^2.11",
+        "doctrine/orm": "^2.13",
         "phpdocumentor/reflection-docblock": "^5.3",
         "sensio/framework-extra-bundle": "^6.2",
         "symfony/apache-pack": "^1.0",
@@ -42,7 +42,7 @@
         "symfony/browser-kit": "^5.4",
         "symfony/css-selector": "^5.4",
         "symfony/debug-bundle": "^5.4",
-        "symfony/maker-bundle": "^1.33",
+        "symfony/maker-bundle": "^1.47",
         "symfony/phpunit-bridge": "^5.4",
         "symfony/stopwatch": "^5.4",
         "symfony/var-dumper": "^5.4",
@@ -50,7 +50,7 @@
     },
     "config": {
         "platform":{
-            "php": "7.3"
+            "php": "8.1"
         },
         "preferred-install": {
             "*": "dist"

File diff suppressed because it is too large
+ 174 - 304
composer.lock


+ 1 - 1
config/packages/doctrine.yaml

@@ -23,7 +23,7 @@ doctrine:
         mappings:
             App:
                 is_bundle: false
-                type: annotation
+                type: attribute
                 dir: '%kernel.project_dir%/src/Entity'
                 prefix: 'App\Entity'
                 alias: App

+ 0 - 0
src/Migrations/Version20190906170807.php → migrations/Version20190906170807.php


+ 0 - 0
src/Migrations/Version20191029114504.php → migrations/Version20191029114504.php


+ 10 - 16
src/Controller/GenreController.php

@@ -11,13 +11,13 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
 use Symfony\Component\Form\FormFactoryInterface;
 use Symfony\Component\Routing\Annotation\Route;
 use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
 
 class GenreController extends AbstractController
 {
-    /**
-     * @Route("/genre", name="genre_liste")
-     */
-    public function indexAction(GenreRepository $repo) {
+    #[Route("/genre", name: "genre_liste")]
+    public function indexAction(GenreRepository $repo): Response
+	{
         $genres = $repo->findAll();
 
         return $this->render('genre/liste.html.twig', array(
@@ -26,10 +26,8 @@ class GenreController extends AbstractController
     }
 
 
-	/**
-	 * @Route("/genre/ajouter", name="genre_ajouter")
-	 */
-	public function ajouterAction(Request $request, GenreManager $genreManager)
+	#[Route("/genre/ajouter", name: "genre_ajouter")]
+	public function ajouterAction(Request $request, GenreManager $genreManager): Response
 	{
 		$genre = new Genre();
 		$form = $this->createForm(GenreType::class, $genre);
@@ -47,10 +45,8 @@ class GenreController extends AbstractController
 		));
 	}
 
-	/**
-	 * @Route("/genre/modifier/{id}", name="genre_modifier")
-	 */
-	public function modifierAction(Request $request, Genre $genre, FilmRepository $repo, GenreManager $genreManager)
+	 #[Route("/genre/modifier/{id}", name: "genre_modifier")]
+	public function modifierAction(Request $request, Genre $genre, FilmRepository $repo, GenreManager $genreManager): Response
 	{
 		$form = $this->createForm(GenreType::class, $genre);
 		$form->handleRequest($request);
@@ -70,10 +66,8 @@ class GenreController extends AbstractController
 		));
 	}
 
-	/**
-	 * @Route("/genre/supprimer/{id}", name="genre_supprimer")
-	 */
-	public function supprimerAction(Request $request, Genre $genre, GenreManager $genreManager, FormFactoryInterface $ffi)
+	 #[Route("/genre/supprimer/{id}", name: "genre_supprimer")]
+	public function supprimerAction(Request $request, Genre $genre, GenreManager $genreManager, FormFactoryInterface $ffi): Response
     {
         $form = $ffi->create();
         $form->handleRequest($request);

+ 4 - 9
src/Controller/ProfilController.php

@@ -13,10 +13,9 @@ use Symfony\Component\Routing\Annotation\Route;
 
 class ProfilController extends AbstractController
 {
-    /**
-     * @Route("/profil/", name="user_profil")
-     */
-    public function monProfilAction(Request $request, EntityManagerInterface $em)
+    
+    #[Route("/profil/", name: "user_profil")]    
+    public function monProfilAction(Request $request, EntityManagerInterface $em): Response
     {
         $user = $this->getUser();
         $form = $this->createForm(UserEditProfilType::class , $user);
@@ -28,15 +27,12 @@ class ProfilController extends AbstractController
             $this->addFlash('success', "Votre profil a été modifié");
         }
 
-
         return $this->renderForm('profil/monprofil.html.twig', array (
             'form'  =>  $form
         ));
     }
 
-    /**
-     * @Route("/preferences/", name="user_preferences")
-     */
+    #[Route("/preferences/", name: "user_preferences")]
     public function mesPreferencesAction(Request $request, EntityManagerInterface $em, ProfileRepository $profileRepo): Response
     {
         $profile = $profileRepo->findByUser($this->getUser());
@@ -55,5 +51,4 @@ class ProfilController extends AbstractController
         ]);
     }
 
-
 }

+ 13 - 16
src/Controller/RealisateurController.php

@@ -11,12 +11,12 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
 use Symfony\Component\Form\FormFactoryInterface;
 use Symfony\Component\Routing\Annotation\Route;
 use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
 
 class RealisateurController extends AbstractController
 {
-    /**
-     * @Route("/real/", name="realisateur_liste")
-     */
+    
+    #[Route("/real/", name: "realisateur_liste")]     
     public function indexAction(RealisateurRepository $repo) {
         $realisateurs = $repo->findAll();
 
@@ -25,10 +25,9 @@ class RealisateurController extends AbstractController
         ));
     }
 
-	/**
-	 * @Route("/real/ajouter", name="realisateur_ajouter")
-	 */
-	public function ajouterAction(Request $request, RealisateurManager $realisateurManager)
+	
+	#[Route("/real/ajouter", name: "realisateur_ajouter")]	 
+	public function ajouterAction(Request $request, RealisateurManager $realisateurManager): Response
 	{
 		$realisateur = new Realisateur();
 		$form = $this->createForm(RealisateurType::class, $realisateur);
@@ -46,10 +45,9 @@ class RealisateurController extends AbstractController
 		));
 	}
 
-	/**
-	 * @Route("/real/modifier/{id}", name="realisateur_modifier")
-	 */
-	public function modifierAction(Request $request, Realisateur $realisateur, RealisateurManager $realisateurManager)
+	
+	#[Route("/real/modifier/{id}", name: "realisateur_modifier")]
+	public function modifierAction(Request $request, Realisateur $realisateur, RealisateurManager $realisateurManager): Response
 	{
 		$form = $this->createForm(RealisateurType::class, $realisateur);
 		$form->handleRequest($request);
@@ -67,11 +65,10 @@ class RealisateurController extends AbstractController
 		));
 	}
 
-	/**
-	 * @Route("/real/supprimer/{id}", name="realisateur_supprimer")
-     * @IsGranted("ROLE_ADMIN")
-	 */
-	public function supprimerAction(Request $request, Realisateur $realisateur, RealisateurManager $realisateurManager, FormFactoryInterface $ffi)
+	
+	#[Route("/real/supprimer/{id}", name: "realisateur_supprimer")]
+    #[IsGranted("ROLE_ADMIN")]
+	public function supprimerAction(Request $request, Realisateur $realisateur, RealisateurManager $realisateurManager, FormFactoryInterface $ffi): Response
     {
 		$form = $ffi->create();
         $form->handleRequest($request);

+ 4 - 4
src/Controller/SearchController.php

@@ -6,14 +6,14 @@ use App\Service\OptionsManager;
 use App\Service\Search;
 use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
 use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\Routing\Annotation\Route;
 
 class SearchController extends AbstractController
 {
-    /**
-     * @Route("/recherche", name="search_recherche")
-     */
-    public function searchAction(Request $request, Search $filmSearch, OptionsManager $options)
+
+    #[Route("/recherche", name: "search_recherche")]
+    public function searchAction(Request $request, Search $filmSearch, OptionsManager $options): Response
     {
         $query = $request->query->get('q', "");
         return $this->render('videotheque/liste_'.$options->vue().'.html.twig', array(

+ 22 - 47
src/Controller/SecurityController.php

@@ -26,9 +26,7 @@ use Symfony\Component\HttpFoundation\Response;
 
 class SecurityController extends AbstractController
 {
-    /**
-     * @Route("/login", name="app_login")
-     */
+    #[Route("/login", name: "app_login")]
     public function login(AuthenticationUtils $authenticationUtils): Response
     {
         // get the login error if there is one
@@ -39,18 +37,14 @@ class SecurityController extends AbstractController
         return $this->render('security/login.html.twig', ['last_username' => $lastUsername, 'error' => $error]);
     }
 
-    /**
-     * @Route("/logout", name="app_logout")
-     */
+    #[Route("/logout", name: "app_logout")]
     public function logout()
     {
         throw new \Exception('Don\'t forget to activate logout in security.yaml');
     }
 
-    /**
-     * @Route("/admin/createuser", name="admin_createuser")
-     */
-    public function createUserAction(Request $request, UserManager $userManager)
+    #[Route("/admin/createuser", name: "admin_createuser")]
+    public function createUserAction(Request $request, UserManager $userManager): Response
     {
         $user = new User;
         $form = $this->createForm(UserType::class, $user);
@@ -67,10 +61,8 @@ class SecurityController extends AbstractController
         ));
     }
 
-    /**
-     * @Route("/admin/edituser/{id}", name="admin_edituser")
-     */
-    public function editUserAction(Request $request, User $user, EntityManagerInterface $em)
+    #[Route("/admin/edituser/{id}", name: "admin_edituser")]
+    public function editUserAction(Request $request, User $user, EntityManagerInterface $em): Response
     {
         $form = $this->createForm(UserEditType::class, $user);
         $form->handleRequest($request);
@@ -85,10 +77,8 @@ class SecurityController extends AbstractController
         ));
     }
 
-    /**
-     * @Route("/admin/edituseroptions/{id}", name="admin_edituseroptions")
-     */
-    public function editUseroptions (Request $request, Profile $options, EntityManagerInterface $em)
+    #[Route("/admin/edituseroptions/{id}", name: "admin_edituseroptions")]
+    public function editUseroptions (Request $request, Profile $options, EntityManagerInterface $em): Response
     {
         $form = $this->createForm(ProfileType::class, $options);
         $form->handleRequest($request);
@@ -106,10 +96,8 @@ class SecurityController extends AbstractController
         ]);
     }
 
-    /**
-     * @Route("/admin", name="admin_index")
-     */
-    public function indexAction(Request $request, UserRepository $repo)
+    #[Route("/admin", name: "admin_index")]
+    public function indexAction(Request $request, UserRepository $repo): Response
     {
         $users = $repo->findAll();
 
@@ -118,10 +106,8 @@ class SecurityController extends AbstractController
         ));
     }
 
-    /**
-     * @Route("/admin/deluser/{id}", name="admin_deluser")
-     */
-    public function delUserAction (Request $request, User $user, UserManager $userManager, FormFactoryInterface $ffi)
+    #[Route("/admin/deluser/{id}", name: "admin_deluser")]
+    public function delUserAction (Request $request, User $user, UserManager $userManager, FormFactoryInterface $ffi): Response
     {
         $form = $ffi->create();
         $form->handleRequest($request);
@@ -136,10 +122,8 @@ class SecurityController extends AbstractController
         ));
     }
 
-    /**
-     * @Route("/register", name="security_register")
-     */
-    public function registerAction(Request $request, UserManager $userManager, Mail $mail)
+    #[Route("/register", name: "security_register")]
+    public function registerAction(Request $request, UserManager $userManager, Mail $mail): Response
     {
         $user = new User();
         $form = $this->createForm(UserRegisterType::class, $user);
@@ -161,10 +145,8 @@ class SecurityController extends AbstractController
         ));
     }
 
-    /**
-     * @Route("/motdepasseoublie", name="security_envoyertoken")
-     */
-    public function recupMdpAction(Request $request, UserManager $userManager, Mail $mail, EntityManagerInterface $em, UserRepository $userRepo)
+    #[Route("/motdepasseoublie", name: "security_envoyertoken")]
+    public function recupMdpAction(Request $request, UserManager $userManager, Mail $mail, EntityManagerInterface $em, UserRepository $userRepo): Response
     {
         $form = $this->createFormBuilder()
             ->add('email', EmailType::class)
@@ -194,10 +176,8 @@ class SecurityController extends AbstractController
         ));
     }
 
-    /**
-     * @Route("/resetpassword/token={token}", name="security_resetpassword")
-     */
-    public function resetPasswordAction(Request $request, UserManager $userManager, User $user = null)
+    #[Route("/resetpassword/token={token}", name: "security_resetpassword")]
+    public function resetPasswordAction(Request $request, UserManager $userManager, User $user = null): Response
     {
         if ($user != null) {
             if ($user->isValidToken()) {
@@ -218,11 +198,8 @@ class SecurityController extends AbstractController
 
     }
 
-    /**
-     * Ne pas utiliser
-     * @Route("/admin/resettokens", name="admin_resettokens")
-     */
-    public function resetTokensAction(UserManager $userManager, EntityManagerInterface $em, UserRepository $userRepo)
+    #[Route("/admin/resettokens", name: "admin_resettokens")]
+    public function resetTokensAction(UserManager $userManager, EntityManagerInterface $em, UserRepository $userRepo): Response
     {
         $users = $userRepo->findAll();
         foreach ($users as $user)
@@ -233,10 +210,8 @@ class SecurityController extends AbstractController
         return $this->redirectToRoute('admin_index');
     }
 
-    /**
-     * @Route("/activate/token={token}", name="security_activate")
-     */
-    public function activateAction(Request $request, EntityManagerInterface $em, User $user = null)
+    #[Route("/activate/token={token}", name: "security_activate")]
+    public function activateAction(Request $request, EntityManagerInterface $em, User $user = null): Response
     {
         if ($user != null)
         {

+ 22 - 41
src/Controller/VideothequeController.php

@@ -21,14 +21,13 @@ use App\Service\CommentaireManager;
 use App\Service\FilmManager;
 use App\Service\OptionsManager;
 use Symfony\Component\Form\FormFactoryInterface;
+use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\Serializer\SerializerInterface;
 
 class VideothequeController extends AbstractController
 {
-	/**
-	 * @Route("/", name="videotheque_liste")
-	 */
-	public function listeAction(Request $request, FilmRepository $repo, OptionsManager $options)
+	#[Route("/", name: "videotheque_liste")]
+	public function listeAction(Request $request, FilmRepository $repo, OptionsManager $options): Response
 	{
         $listeFilms = $repo->findTous();
 
@@ -38,10 +37,8 @@ class VideothequeController extends AbstractController
 		));
     }
 
-    /**
-     * @Route("/prochaines-sorties", name="prochaines_sorties")
-     */
-    public function prochainesSorties(Request $request, FilmRepository $repo, OptionsManager $options)
+    #[Route("/prochaines-sorties", name: "prochaines_sorties")]
+    public function prochainesSorties(Request $request, FilmRepository $repo, OptionsManager $options): Response
     {
         $listeFilms = $repo->findProchaines();
 
@@ -51,10 +48,8 @@ class VideothequeController extends AbstractController
 		));
     }
 
-    /**
-     * @Route("/liste-by/{id}", name="videotheque_listepargenre")
-     */
-	public function  listeParGenreAction(\App\Entity\Genre $genre, FilmRepository $repo, OptionsManager $options)
+    #[Route("/liste-by/{id}", name: "videotheque_listepargenre")]
+	public function  listeParGenreAction(\App\Entity\Genre $genre, FilmRepository $repo, OptionsManager $options): Response
     {
         $films = $repo->findFilmWithGenre(array($genre->getName()));
 
@@ -64,10 +59,8 @@ class VideothequeController extends AbstractController
         ));
     }
 
-    /**
-     * @Route("/liste-by_real/{id}", name="videotheque_listeparreal")
-     */
-    public function  listeParRealisateurAction(Realisateur $realisateur, FilmRepository $repo, OptionsManager $options)
+    #[Route("/liste-by_real/{id}", name: "videotheque_listeparreal")]
+    public function  listeParRealisateurAction(Realisateur $realisateur, FilmRepository $repo, OptionsManager $options): Response
     {
         $films = $repo->findFilmWithReal(array($realisateur->getNomComplet()));
 
@@ -77,10 +70,8 @@ class VideothequeController extends AbstractController
         ));
     }
 
-	/**
-	 * @Route("/ajouter", name="videotheque_ajouter")
-	 */
-	public function ajouterAction(Request $request, FilmManager $filmManager)
+	#[Route("/ajouter", name: "videotheque_ajouter")]
+	public function ajouterAction(Request $request, FilmManager $filmManager): Response
 	{
 		$film = new Film;
 		$form = $this->createForm(FilmType::class, $film);
@@ -98,10 +89,8 @@ class VideothequeController extends AbstractController
 		));
 	}
 
-	/**
-	 * @Route("/modifier/{id}", name="videotheque_modifier")
-	 */
-	public function modifierAction(Request $request, Film $film, FilmManager $filmManager)
+	#[Route("/modifier/{id}", name: "videotheque_modifier")]
+	public function modifierAction(Request $request, Film $film, FilmManager $filmManager): Response
 	{
 		$form = $this->createForm(FilmType::class, $film);
 		$form->handleRequest($request);
@@ -117,11 +106,9 @@ class VideothequeController extends AbstractController
 		));
 	}
 
-	/**
-	 * @Route("/supprimer/{id}", name="videotheque_supprimer")
-     * @IsGranted("ROLE_ADMIN")
-	 */
-	public function supprimerAction(Request $request, Film $film, FilmManager $filmManager, FormFactoryInterface $ffi)
+	#[Route("/supprimer/{id}", name: "videotheque_supprimer")]
+    #[IsGranted("ROLE_ADMIN")]
+	public function supprimerAction(Request $request, Film $film, FilmManager $filmManager, FormFactoryInterface $ffi): Response
 	{
         $form = $ffi->create();
         $form->handleRequest($request);
@@ -138,10 +125,8 @@ class VideothequeController extends AbstractController
 		));
 	}
 
-	/**
-     * @Route("/fichefilm/{id}", name="videotheque_voirfilm")
-     */
-	public function voirFilmAction(Request $request, \App\Entity\Film $film, CommentaireManager $cm, Security $security, CommentaireRepository $repo)
+	#[Route("/fichefilm/{id}", name: "videotheque_voirfilm")]
+	public function voirFilmAction(Request $request, \App\Entity\Film $film, CommentaireManager $cm, Security $security, CommentaireRepository $repo): Response
     {
         if ($security->isGranted('IS_AUTHENTICATED_REMEMBERED'))
         {
@@ -168,10 +153,8 @@ class VideothequeController extends AbstractController
         ));
     }
 
-    /**
-     * @Route("/ajax_req_realisateurs", name="videotheque_ajax_realisateurs")
-     */
-    public function ajaxRealisateurs(RealisateurRepository $repo, SerializerInterface $serializer)
+    #[Route("/ajax_req_realisateurs", name: "videotheque_ajax_realisateurs")]
+    public function ajaxRealisateurs(RealisateurRepository $repo, SerializerInterface $serializer): Response
     {
         $realisateurs = $repo->findNomsComplets();
         $liste = array();
@@ -183,10 +166,8 @@ class VideothequeController extends AbstractController
         return new JsonResponse($liste);
     }
 
-    /**
-     * @Route("/ajax_req_genres", name="videotheque_ajax_genres")
-     */
-    public function ajaxGenres(GenreRepository $repo, SerializerInterface $serializer)
+    #[Route("/ajax_req_genres", name: "videotheque_ajax_genres")]
+    public function ajaxGenres(GenreRepository $repo, SerializerInterface $serializer): Response
     {
         $genres = $repo->findGenres();
         $liste = array();

+ 7 - 28
src/Controller/VideothequePersonnelleController.php

@@ -10,14 +10,12 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
 use Symfony\Component\HttpFoundation\JsonResponse;
 use Symfony\Component\Routing\Annotation\Route;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\Serializer\SerializerInterface;
+use Symfony\Component\HttpFoundation\Response;
 
 class VideothequePersonnelleController extends AbstractController
 {
-	/**
-     * @Route("/maliste/", name="videothequepersonnelle_maliste")
-     */
-	public function maListeAction (Request $request, FilmRepository $repo, OptionsManager $options)
+	#[Route("/maliste/", name:"videothequepersonnelle_maliste")]
+	public function maListeAction (Request $request, FilmRepository $repo, OptionsManager $options): Response
     {
         $films = $repo->findTousFavoritesByUser($this->getUser());
 
@@ -27,23 +25,8 @@ class VideothequePersonnelleController extends AbstractController
         ));
     }
 
-
-	/*public function maListeAction (Request $request)
-    {
-        $resultats = array();
-        $user = $this->getUser();
-        foreach ($user->getFilms() as $key => $film) {
-            $resultats[$key] = $this->get('serializer')->serialize($film, 'json');
-        }
-        return new JsonResponse($resultats);
-    }*/
-
-    /**
-     * @Route("/maliste/modifieravoir/", name="maliste_modifier_a_voir")
-     * @param Request $request
-     * @return JsonResponse
-     */
-    public function modifierFilmDansListeAction(Request $request, EntityManagerInterface $em, FilmRepository $repo, FilmManager $filmManager)
+    #[Route("/maliste/modifieravoir/", name:"maliste_modifier_a_voir")]
+    public function modifierFilmDansListeAction(Request $request, EntityManagerInterface $em, FilmRepository $repo, FilmManager $filmManager): Response
     {
         $result = null;
         $film = $repo->find($request->request->get('id_film'));
@@ -56,12 +39,8 @@ class VideothequePersonnelleController extends AbstractController
         return new JsonResponse((object)['newState' => $result]);
     }
 
-    /**
-     * @Route("/maliste/modifiervus/", name="maliste_modifier_vus")
-     * @param Request $request
-     * @return JsonResponse
-     */
-    public function modifierFilmVusAction(Request $request, FilmRepository $repo, EntityManagerInterface $em, FilmManager $filmManager)
+    #[Route("/maliste/modifiervus/", name:"maliste_modifier_vus")]
+    public function modifierFilmVusAction(Request $request, FilmRepository $repo, EntityManagerInterface $em, FilmManager $filmManager): Response
     {
         $result = null;
 

+ 28 - 94
src/Entity/Commentaire.php

@@ -2,159 +2,93 @@
 
 namespace App\Entity;
 
+use App\Repository\CommentaireRepository;
 use Doctrine\ORM\Mapping as ORM;
 
-/**
- * Commentaire
- *
- * @ORM\Table(name="commentaire")
- * @ORM\Entity(repositoryClass="App\Repository\CommentaireRepository")
- */
+#[ORM\Table(name: "commentaire")]
+#[ORM\Entity(repositoryClass: CommentaireRepository::class)]
 class Commentaire
 {
-    /**
-     * @var int
-     *
-     * @ORM\Column(name="id", type="integer")
-     * @ORM\Id
-     * @ORM\GeneratedValue(strategy="AUTO")
-     */
+    #[ORM\Column(name: "id", type: "integer")]
+    #[ORM\Id]
+    #[ORM\GeneratedValue(strategy: "AUTO")]
+
     private $id;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="contenu", type="text", length=191, nullable=true)
-     */
+    #[ORM\Column(name: "contenu", type: "text", length: 191, nullable: true)]
     private $contenu;
 
-    /**
-     * @var int
-     *
-     * @ORM\Column(name="note", type="integer", nullable=true)
-     *
-     */
+    #[ORM\Column(name: "note", type: "integer", nullable: true)]
+
     private $note;
 
-    /**
-     * @ORM\ManyToOne(targetEntity="App\Entity\Film", inversedBy="commentaires")
-     * @ORM\JoinColumn(nullable=false)
-     */
+    #[ORM\ManyToOne(targetEntity: Film::class, inversedBy: "commentaires")]
+    #[ORM\JoinColumn(nullable: false)]
+
     private $film;
 
-    /**
-     * @ORM\ManyToOne(targetEntity="App\Entity\User")
-     * @ORM\JoinColumn(nullable=false)
-     */
+    #[ORM\ManyToOne(targetEntity: User::class)]
+    #[ORM\JoinColumn(nullable: false)]
+
     private $user;
 
-    /**
-     * @ORM\Column(type="datetime", nullable=true)
-     */
+    #[ORM\Column(type: "datetime", nullable: true)]
     private $dateSubmitted;
 
-    /**
-     * Constructor
-     */
     public function __construct ()
     {
         $this->dateSubmitted = new \DateTime('now');
     }
 
-    /**
-     * Get id
-     *
-     * @return int
-     */
-    public function getId()
+    public function getId(): int
     {
         return $this->id;
     }
 
-    /**
-     * Set contenu
-     *
-     * @param string $contenu
-     *
-     * @return Commentaire
-     */
-    public function setContenu($contenu)
+    public function setContenu($contenu): self
     {
         $this->contenu = $contenu;
 
         return $this;
     }
 
-    /**
-     * Get contenu
-     *
-     * @return string
-     */
-    public function getContenu()
+    public function getContenu(): ?string
     {
         return $this->contenu;
     }
 
-    /**
-     * @return int
-     */
-    public function getNote()
+    public function getNote(): ?int
     {
         return $this->note;
     }
 
-    /**
-     * @param int $note
-     */
-    public function setNote($note)
+    public function setNote($note): self
     {
         $this->note = $note;
+
+        return $this;
     }
 
-    /**
-     * Set film
-     *
-     * @param \App\Entity\Film $film
-     *
-     * @return Commentaire
-     */
-    public function setFilm(\App\Entity\Film $film)
+    public function setFilm(\App\Entity\Film $film): self
     {
         $this->film = $film;
 
         return $this;
     }
 
-    /**
-     * Get film
-     *
-     * @return \App\Entity\Film
-     */
-    public function getFilm()
+    public function getFilm(): Film
     {
         return $this->film;
     }
 
-    /**
-     * Set user
-     *
-     * @param \App\Entity\User $user
-     *
-     * @return Commentaire
-     */
-    public function setUser(\App\Entity\User $user)
+    public function setUser(\App\Entity\User $user): self
     {
         $this->user = $user;
 
         return $this;
     }
 
-    /**
-     * Get user
-     *
-     * @return \App\Entity\User
-     */
-    public function getUser()
+    public function getUser(): User
     {
         return $this->user;
     }

+ 107 - 304
src/Entity/Film.php

@@ -2,350 +2,192 @@
 
 namespace App\Entity;
 
+use App\Repository\FilmRepository;
+use Doctrine\Common\Collections\Collection;
+use Doctrine\DBAL\Types\Types;
 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Validator\Constraints as Assert;
 
-
-/**
- * Film
- *
- * @ORM\Table(name="film")
- * @ORM\Entity(repositoryClass="App\Repository\FilmRepository")
- */
+#[ORM\Table(name: "film")]
+#[ORM\Entity(repositoryClass: FilmRepository::class)]
 class Film
 {
-    /**
-     * @var int
-     *
-     * @ORM\Column(name="id", type="integer")
-     * @ORM\Id
-     * @ORM\GeneratedValue(strategy="AUTO")
-     */
+    #[ORM\Column(name: "id", type: "integer")]
+    #[ORM\Id]
+    #[ORM\GeneratedValue(strategy: "AUTO")]
     private $id;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="titre", type="string", length=191)
-     */
+    #[ORM\Column(name: "titre", type: "string", length: 191)]
     private $titre;
 
-    /**
-     * @var \DateTime
-     *
-     * @ORM\Column(name="annee", type="date", nullable=true)
-     */
+    #[ORM\Column(name: "annee", type: "date", nullable: true)]
     private $annee;
 
-    /**
-     * @var \DateTime
-     *
-     * @ORM\Column(name="date_submited", type="datetime", nullable=true)
-     */
+    #[ORM\Column(name: "date_submited", type: "datetime", nullable: true)]
     private $dateSubmited;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="lien", type="string", length=191, nullable=true)
-     * @Assert\Url()
-     */
+    #[ORM\Column(name: "lien", type: "string", length: 191, nullable: true)]
+    #[Assert\Url()]
     private $lien;
 
-    /**
-     * @var float
-     *
-     * @ORM\Column(name="note", type="float", nullable=true)
-     */
+    #[ORM\Column(name: "note", type: "float", nullable: true)]
     private $note;
 
-    /**
-     * @var int
-     *
-     * @ORM\Column(name="nb_coms", type="integer", nullable=true)
-     */
+    #[ORM\Column(name: "nb_coms", type: "integer", nullable: true)]
     private $nbComs;
 
-    /**
-     * @return \DateTime
-     */
-    public function getDateSubmited()
-    {
-        return $this->dateSubmited;
-    }
-
-    /**
-     * @param \DateTime $dateSubmited
-     */
-    public function setDateSubmited(\DateTime $dateSubmited)
-    {
-        $this->dateSubmited = $dateSubmited;
-    }
-
-    /**
-     * @return boolean
-     */
-    public function isNew()
-    {
-        $finNew = $this->getDateSubmited()->modify('+1 day');
-        return (new \DateTime('now') < $finNew);
-    }
-
-    /**
-     * @Assert\Valid()
-     * @ORM\OneToOne(targetEntity="App\Entity\MediaVideo", cascade={"persist","remove"})
-     * @ORM\JoinColumn(nullable=true)
-     */
+    #[Assert\Valid()]
+    #[ORM\OneToOne(targetEntity: MediaVideo::class, cascade: ["persist","remove"])]
+    #[ORM\JoinColumn(nullable: true)]
     private $mediaVideo;
 
-    /**
-     * @ORM\ManyToMany(targetEntity="App\Entity\Realisateur", inversedBy="films", cascade={"persist"})
-     * @var \Doctrine\Common\Collections\Collection
-     */
+    #[ORM\ManyToMany(targetEntity: Realisateur::class, inversedBy: "films", cascade: ["persist"])]
     private $realisateurs;
 
-    /**
-     * @ORM\OneToMany(targetEntity="App\Entity\Commentaire", mappedBy="film", orphanRemoval=true)
-     * @var \Doctrine\Common\Collections\Collection
-     */
+    #[ORM\OneToMany(targetEntity: Commentaire::class, mappedBy: "film", orphanRemoval: true)]
     private $commentaires;
 
-    /**
-     * @ORM\ManyToOne(targetEntity="App\Entity\User")
-     * @ORM\JoinColumn(nullable=true)
-     */
+    #[ORM\ManyToOne(targetEntity: User::class)]
+    #[ORM\JoinColumn(nullable: true)]
     private $authered;
 
-    /**
-     * @ORM\ManyToMany(targetEntity="App\Entity\User", inversedBy="films")
-     * @ORM\JoinTable(name="filmsavoir_users")
-     * @var \Doctrine\Common\Collections\Collection
-     */
+    #[ORM\ManyToMany(targetEntity: User::class, inversedBy: "films")]
+    #[ORM\JoinTable(name: "filmsavoir_users")]
     private $usersWantToView;
 
-    /**
-     * @ORM\ManyToMany(targetEntity="App\Entity\User", inversedBy="filmsVus")
-     * @ORM\JoinTable(name="filmsvus_users")
-     * @var \Doctrine\Common\Collections\Collection
-     */
+    #[ORM\ManyToMany(targetEntity: User::class, inversedBy: "filmsVus")]
+    #[ORM\JoinTable(name: "filmsvus_users")]
     private $usersWhoSeen;
 
-    /**
-     * @return \App\Entity\MediaVideo $mediaVideo
-     */
-    public function getMediaVideo()
-    {
-        return $this->mediaVideo;
-    }
-
-    /**
-     * @param \App\Entity\MediaVideo $mediaVideo
-     */
-    public function setMediaVideo(MediaVideo $mediaVideo = null)
-    {
-        $this->mediaVideo = $mediaVideo;
-    }
-
-    /**
-     * @ORM\ManyToMany(targetEntity="App\Entity\Genre", cascade={"persist"})
-     * @var \Doctrine\Common\Collections\Collection
-     */
+    #[ORM\ManyToMany(targetEntity: Genre::class, cascade: ["persist"])]
     private $genres;
 
-    /**
-     * @ORM\Column(type="text", nullable=true)
-     */
+    #[ORM\Column(type: "text", nullable: true)]
     private $information;
 
-    /**
-     * @ORM\Column(type="date", nullable=true)
-     */
+    #[ORM\Column(type: "date", nullable: true)]
     private $dateSortie;
 
-    /**
-     * @return \App\Entity\User $authered
-     */
-    public function getAuthered()
+    public function __construct()
+    {
+        $this->realisateurs = new \Doctrine\Common\Collections\ArrayCollection();
+        $this->usersWantToView = new \Doctrine\Common\Collections\ArrayCollection();
+        $this->usersWhoSeen = new \Doctrine\Common\Collections\ArrayCollection();
+        $this->genres = new \Doctrine\Common\Collections\ArrayCollection();
+        $this->commentaires = new \Doctrine\Common\Collections\ArrayCollection();
+        $this->setDateSubmited(new \DateTime());
+    }
+
+    public function getAuthered(): ?User
     {
         return $this->authered;
     }
 
-    /**
-     * @param \App\Entity\User $authered
-     */
-    public function setAuthered(User $authered)
+    public function setAuthered(?User $authered): self
     {
         $this->authered = $authered;
+
+        return $this;
     }
 
-    /**
-     * Get id
-     *
-     * @return int
-     */
-    public function getId()
+    public function getId(): int
     {
         return $this->id;
     }
 
-    /**
-     * Set titre
-     *
-     * @param string $titre
-     *
-     * @return Film
-     */
-    public function setTitre($titre)
+    public function setTitre($titre): self
     {
         $this->titre = $titre;
 
         return $this;
     }
 
-    /**
-     * Get titre
-     *
-     * @return string
-     */
-    public function getTitre()
+    public function getTitre(): string
     {
         return $this->titre;
     }
 
-    /**
-     * Set annee
-     *
-     * @param \DateTime $annee
-     *
-     * @return Film
-     */
-    public function setAnnee($annee)
+    public function setAnnee(?\DateTimeInterface $annee): self
     {
         $this->annee = $annee;
 
         return $this;
     }
 
-    /**
-     * Get annee
-     *
-     * @return \DateTime
-     */
-    public function getAnnee()
+    public function getAnnee(): ?\DateTimeInterface
     {
         return $this->annee;
     }
 
-    /**
-     * @return string
-     */
-    public function getLien()
+    public function getLien(): ?string
     {
         return $this->lien;
     }
 
-    /**
-     * @param string $lien
-     */
-    public function setLien($lien = null)
+    public function setLien(?string $lien = null): self
     {
         $this->lien = $lien;
+
+        return $this;
     }
 
-    /**
-     * Constructor
-     */
-    public function __construct()
+    public function getDateSubmited(): ?\DateTimeInterface
     {
-        $this->realisateurs = new \Doctrine\Common\Collections\ArrayCollection();
-        $this->usersWantToView = new \Doctrine\Common\Collections\ArrayCollection();
-        $this->usersWhoSeen = new \Doctrine\Common\Collections\ArrayCollection();
-        $this->genres = new \Doctrine\Common\Collections\ArrayCollection();
-        $this->commentaires = new \Doctrine\Common\Collections\ArrayCollection();
-        $this->setDateSubmited(new \DateTime());
+        return $this->dateSubmited;
+    }
+
+    public function setDateSubmited(?\DateTime $dateSubmited): self
+    {
+        $this->dateSubmited = $dateSubmited;
+
+        return $this;
     }
 
-    /**
-     * Add Commentaire
-     * 
-     * @param \App\Entity\Commentaire $commentaire
-     * 
-     * @return Film
-     */
-    public function addCommentaire(\App\Entity\Commentaire $commentaire)
+    public function isNew(): bool
+    {
+        $finNew = (new \DateTime($this->getDateSubmited()->format("Y/m/d")))->modify('+1 day');
+        return (new \DateTime('now') < $finNew);
+    }
+
+    public function addCommentaire(\App\Entity\Commentaire $commentaire): self
     {
         $this->commentaires[] = $commentaire;
 
         return $this;
     }
 
-    /**
-     * Remove commentaire
-     * 
-     * @param \App\Entity\Commentaire $commentaire
-     * 
-     * @return Film
-     */
-    public function removeCommentaire(\App\Entity\Commentaire $commentaire)
+    public function removeCommentaire(\App\Entity\Commentaire $commentaire): self
     {
         $this->commentaires->removeElement($commentaire);
 
         return $this;
     }
 
-    /**
-     * Get Commentaires
-     *
-     * @return \Doctrine\Common\Collections\Collection
-     */
-    public function getCommentaires()
+    public function getCommentaires(): Collection
     {
         return $this->commentaires;
     }
 
-    /**
-     * Add realisateur
-     *
-     * @param \App\Entity\Realisateur $realisateur
-     *
-     * @return Film
-     */
-    public function addRealisateur(Realisateur $realisateur)
+    public function addRealisateur(Realisateur $realisateur): self
     {
         $this->realisateurs[] = $realisateur;
 
         return $this;
     }
 
-    /**
-     * Remove realisateur
-     *
-     * @param \App\Entity\Realisateur $realisateur
-     */
-    public function removeRealisateur(Realisateur $realisateur)
+    public function removeRealisateur(Realisateur $realisateur):  self
     {
         $this->realisateurs->removeElement($realisateur);
+
+        return $this;
     }
 
-    /**
-     * Get realisateurs
-     *
-     * @return \Doctrine\Common\Collections\Collection
-     */
-    public function getRealisateurs()
+    public function getRealisateurs(): Collection
     {
         return $this->realisateurs;
     }
 
-    ///////////////////////////////////////////////////////
-    /**
-     * Add user
-     *
-     * @param \App\Entity\User $user
-     *
-     * @return film
-     */
-    public function addUserWantToView(User $user)
+    public function addUserWantToView(User $user): self
     {
         $this->usersWantToView[] = $user;
         $user->addFilm($this);
@@ -353,36 +195,20 @@ class Film
         return $this;
     }
 
-    /**
-     * Remove user
-     *
-     * @param \App\Entity\User $user
-     */
-    public function removeUserWantToView(User $user)
+    public function removeUserWantToView(User $user): self
     {
         $this->usersWantToView->removeElement($user);
         $user->removeFilm($this);
+
+        return $this;
     }
 
-    /**
-     * Get usersWantToView
-     *
-     * @return \Doctrine\Common\Collections\Collection
-     */
-    public function getUsersWantToView()
+    public function getUsersWantToView(): Collection
     {
         return $this->usersWantToView;
     }
 
-    /////////////////////////////////////////////////////////////////////
-    /**
-     * Add user
-     *
-     * @param \App\Entity\User $user
-     *
-     * @return film
-     */
-    public function addUserWhoSeen(User $user)
+    public function addUserWhoSeen(User $user):self
     {
         $this->usersWhoSeen[] = $user;
         $user->addFilmVu($this);
@@ -390,92 +216,58 @@ class Film
         return $this;
     }
 
-    /**
-     * Remove user
-     *
-     * @param \App\Entity\User $user
-     */
-    public function removeUserWhoSeen(User $user)
+    public function removeUserWhoSeen(User $user): self
     {
         $this->usersWhoSeen->removeElement($user);
         $user->removeFilmVu($this);
+
+        return $this;
     }
 
-    /**
-     * Get usersWantToView
-     *
-     * @return \Doctrine\Common\Collections\Collection
-     */
-    public function getUsersWhoSeen()
+    public function getUsersWhoSeen(): Collection
     {
         return $this->usersWhoSeen;
     }
 
-    /**
-     * Get genre
-     *
-     * @return \Doctrine\Common\Collections\Collection
-     */
-    public function getGenres()
+    public function getGenres(): Collection
     {
         return $this->genres;
     }
 
-    /**
-     * Add genre
-     *
-     * @param \App\Entity\Genre $genre
-     *
-     * @return film
-     */
-    public function addGenre(Genre $genre)
+    public function addGenre(Genre $genre): self
     {
         $this->genres[] = $genre;
         return $this;
     }
 
-    /**
-     * Remove genre
-     *
-     * @param \App\Entity\Genre $genre
-     * @return Film
-     */
-    public function removeGenre(Genre $genre)
+    public function removeGenre(Genre $genre): self
     {
         $this->genres->removeElement($genre);
         return $this;
     }
 
-    /**
-     * @return float
-     */
-    public function getNote()
+    public function getNote(): ?float
     {
         return $this->note;
     }
 
-    /**
-     * @param float $note
-     */
-    public function setNote($note)
+    public function setNote($note): self
     {
         $this->note = $note;
+
+        return $this;
     }
 
-    /**
-     * @return int
-     */
-    public function getNbComs()
+    public function getNbComs(): int
     {
         return $this->nbComs;
     }
 
-    /**
-     * @param int $nbComs
-     */
-    public function setNbComs($nbComs)
+    public function setNbComs($nbComs): self
     {
         $this->nbComs = $nbComs;
+
+        return $this;
     }
 
     public function getInformation(): ?string
@@ -502,6 +294,17 @@ class Film
         return $this;
     }
 
+    public function getMediaVideo(): ?MediaVideo
+    {
+        return $this->mediaVideo;
+    }
+
+    public function setMediaVideo(?MediaVideo $mediaVideo = null): self
+    {
+        $this->mediaVideo = $mediaVideo;
+
+        return $this;
+    }
 
 
 }

+ 11 - 38
src/Entity/Genre.php

@@ -2,62 +2,35 @@
 
 namespace App\Entity;
 
+use App\Repository\GenreRepository;
 use Doctrine\ORM\Mapping as ORM;
 
-/**
- * Genre
- *
- * @ORM\Table(name="genre")
- * @ORM\Entity(repositoryClass="App\Repository\GenreRepository")
- */
+#[ORM\Table(name: "genre")]
+#[ORM\Entity(repositoryClass: GenreRepository::class)]
+
 class Genre
 {
-    /**
-     * @var int
-     *
-     * @ORM\Column(name="id", type="integer")
-     * @ORM\Id
-     * @ORM\GeneratedValue(strategy="AUTO")
-     */
+    #[ORM\Column(name: "id", type: "integer")]
+    #[ORM\Id]
+    #[ORM\GeneratedValue(strategy: "AUTO")]
     private $id;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="name", type="string", length=191, unique=true)
-     */
+    #[ORM\Column(name: "name", type: "string", length: 191, unique: true)]
     private $name;
 
-    /**
-     * Get id
-     *
-     * @return int
-     */
-    public function getId()
+    public function getId(): ?int
     {
         return $this->id;
     }
 
-    /**
-     * Set name
-     *
-     * @param string $name
-     *
-     * @return Genre
-     */
-    public function setName($name)
+    public function setName($name): self
     {
         $this->name = $name;
 
         return $this;
     }
 
-    /**
-     * Get name
-     *
-     * @return string
-     */
-    public function getName()
+    public function getName(): string
     {
         return $this->name;
     }

+ 48 - 90
src/Entity/MediaVideo.php

@@ -2,125 +2,88 @@
 
 namespace App\Entity;
 
+use App\Repository\MediaVideoRepository;
 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Validator\Constraints as Assert;
 
-/**
- * MediaVideo
- *
- * @ORM\Table(name="media_video")
- * @ORM\Entity(repositoryClass="App\Repository\MediaVideoRepository")
- * @ORM\HasLifecycleCallbacks // Permet d’utiliser des événements
- */
+#[ORM\Table(name: "media_video")]
+#[ORM\Entity(repositoryClass: MediaVideoRepository::class)]
+#[ORM\HasLifecycleCallbacks] // Permet d’utiliser des événements
+
 class MediaVideo
 {
-    /**
-     * @var int
-     *
-     * @ORM\Column(name="id", type="integer")
-     * @ORM\Id
-     * @ORM\GeneratedValue(strategy="AUTO")
-     */
+    
+
+    #[ORM\Column(name: "id", type: "integer")]
+    #[ORM\Id]
+    #[ORM\GeneratedValue(strategy: "AUTO")]
+    
     private $id;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="type", type="string", length=191)
-     */
+    
+
+    #[ORM\Column(name: "type", type: "string", length: 191)]
+    
     private $type;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="identif", type="string", length=191)
-     */
+    
+
+    #[ORM\Column(name: "identif", type: "string", length: 191)]
+    
     private $identif;
 
-    /**
-     * @Assert\Regex(
-     *     pattern="#^(http|https)://(youtu.be|www.youtube.com|www.dailymotion.com|vimeo.com|video.fdlibre.eu)/#",
-     *     match=true,
-     *     message="L'url doit correspondre à l'url d'une vidéo Youtube, DailyMotion, Vimeo ou Peertube(fdlibre)"
-     * )
-     */
+    #[Assert\Regex(
+        pattern: "#^(http|https)://(youtu.be|www.youtube.com|www.dailymotion.com|vimeo.com|video.fdlibre.eu)/#",
+        match: true,
+        message: "L'url doit correspondre à l'url d'une vidéo Youtube, DailyMotion, Vimeo ou Peertube(fdlibre)"
+    )]
+    
     private $url;
 
-    /**
-     * Get id
-     *
-     * @return int
-     */
-    public function getId()
+    public function getId(): ?int
     {
         return $this->id;
     }
 
-    /**
-     * @return string
-     *
-     */
-    public function getUrl()
+    public function getUrl(): ?string
     {
         return $this->url;
     }
 
-    public function setUrl($url)
+    public function setUrl($url): self
     {
-        return $this->url = $url;
-    }
+        $this->url = $url;
 
-    /**
-     * Set type
-     *
-     * @param string $type
-     *
-     * @return MediaVideo
-     */
-    public function setType($type)
+        return $this;
+    }
+    
+    public function setType($type): self
     {
         $this->type = $type;
 
         return $this;
     }
 
-    /**
-     * Get type
-     *
-     * @return string
-     */
-    public function getType()
+    public function getType(): ?string
     {
         return $this->type;
     }
-
-    /**
-     * Set identif
-     *
-     * @param string $identif
-     *
-     * @return MediaVideo
-     */
-    public function setIdentif($identif)
+    
+    public function setIdentif($identif): self
     {
         $this->identif = $identif;
 
         return $this;
     }
-
-    /**
-     * Get identif
-     *
-     * @return string
-     */
-    public function getIdentif()
+    
+    public function getIdentif(): ?string
     {
         return $this->identif;
     }
 
     /////////////////////
     // Méthodes
-    private function peertubeId($url)
+    private function peertubeId($url): void
     {
         $tableau = explode("/", $url);
         $id = $tableau[count($tableau)-1];
@@ -128,7 +91,7 @@ class MediaVideo
         $this->setType('peertube');
     }
     
-    private function youtubeId($url)
+    private function youtubeId($url): void
     {
         $tableaux = explode("=", $url);  // découpe l’url en deux  avec le signe ‘=’
 
@@ -136,7 +99,7 @@ class MediaVideo
         $this->setType('youtube');  // signale qu’il s’agit d’une video youtube et l’inscrit dans l’attribut $type
     }
 
-    private function youtubeCourteId($url)
+    private function youtubeCourteId($url): void
     {
         $tableaux = explode("/", $url);  // on découpe l’url grâce au « / »
         $id = $tableaux[count($tableaux)-1];  // on retient la dernière partie qui contient l’identifiant
@@ -144,7 +107,7 @@ class MediaVideo
         $this->setType('youtube');  // signale qu’il s’agit d’une video youtube et l’inscrit dans l’attribut $type
     }
 
-    private function dailymotionId($url)
+    private function dailymotionId($url): void
     {
         $cas = explode("/", $url); // On sépare la première partie de l'url des 2 autres
         $idb = $cas[4];  // On récupère la partie qui nous intéressent
@@ -155,7 +118,7 @@ class MediaVideo
         $this->setType('dailymotion'); // signale qu’il s’agit d’une video dailymotion et l’inscrit dans l’attribut $type
     }
 
-    private function vimeoId($url)
+    private function vimeoId($url): void
     {
         $tableaux = explode("/", $url);  // on découpe l’url grâce au « / »
         $id = $tableaux[count($tableaux)-1];  // on reticent la dernière partie qui contient l’identifiant
@@ -163,12 +126,11 @@ class MediaVideo
         $this->setType('vimeo');  // signale qu’il s’agit d’une video vimeo et l’inscrit dans l’attribut $type
     }
 
-    /**
-     * @ORM\PrePersist() // Les trois événement suivant s’exécute avant que l’entité soit enregistée
-     * @ORM\PreUpdate()
-     * @ORM\PreFlush()
-     */
-    public function extractIdentif()
+    #[ORM\PrePersist()] // Les trois événement suivant s’exécute avant que l’entité soit enregistée
+    #[ORM\PreUpdate()]
+    #[ORM\PreFlush()]
+    
+    public function extractIdentif(): void
     {
         $url = $this->getUrl();  // on récupère l’url
 
@@ -261,8 +223,4 @@ class MediaVideo
         $video = "<iframe src='".$this->embedUrl()."'  allowfullscreen></iframe>";
         return $video;
     }
-
-
-
-
 }

+ 13 - 15
src/Entity/Profile.php

@@ -5,29 +5,27 @@ namespace App\Entity;
 use App\Repository\ProfileRepository;
 use Doctrine\ORM\Mapping as ORM;
 
-/**
- * @ORM\Entity(repositoryClass=ProfileRepository::class)
- */
+#[ORM\Entity(repositoryClass: ProfileRepository::class)]
 class Profile
 {
     public static $VIEW = ['liste' => 0, 'vignette' => 1];
 
-    /**
-     * @ORM\Id
-     * @ORM\GeneratedValue
-     * @ORM\Column(type="integer")
-     */
+
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column(type: "integer")]
+
     private $id;
 
-    /**
-     * @ORM\OneToOne(targetEntity=User::class, inversedBy="profile", cascade={"persist", "remove"})
-     * @ORM\JoinColumn(nullable=false)
-     */
+
+    #[ORM\OneToOne(targetEntity: User::class, inversedBy: "profile", cascade: ["persist", "remove"])]
+    #[ORM\JoinColumn(nullable: false)]
+
     private $user;
 
-    /**
-     * @ORM\Column(type="integer")
-     */
+
+    #[ORM\Column(type: "integer")]
+
     private $view;
 
     public function __construct()

+ 19 - 64
src/Entity/Realisateur.php

@@ -2,107 +2,62 @@
 
 namespace App\Entity;
 
+use App\Repository\RealisateurRepository;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 
-/**
- * Realisateur
- *
- * @ORM\Table(name="realisateur")
- * @ORM\Entity(repositoryClass="App\Repository\RealisateurRepository")
- */
+#[ORM\Table(name: "realisateur")]
+#[ORM\Entity(repositoryClass: RealisateurRepository::class)]
+
 class Realisateur
 {
-    /**
-     * @var int
-     *
-     * @ORM\Column(name="id", type="integer")
-     * @ORM\Id
-     * @ORM\GeneratedValue(strategy="AUTO")
-     */
+
+    #[ORM\Column(name: "id", type: "integer")]
+    #[ORM\Id]
+    #[ORM\GeneratedValue(strategy: "AUTO")]
     private $id;
 
-    /**
-     * @var string
-     * @ORM\Column(name="nom_complet", type="string", length=191, unique=true)
-     */
+    #[ORM\Column(name: "nom_complet", type: "string", length: 191, unique: true)]
     private $nomComplet;
 
-    /**
-     * @ORM\ManyToMany(targetEntity="App\Entity\Film", mappedBy="realisateurs", cascade={"persist"})
-     * @var \Doctrine\Common\Collections\Collection
-     */
+    #[ORM\ManyToMany(targetEntity: Film::class, mappedBy: "realisateurs", cascade: ["persist"])]
     private $films;
 
-    /**
-     * Get id
-     *
-     * @return int
-     */
-    public function getId()
+    public function getId(): ?int
     {
         return $this->id;
     }
 
-    /**
-     * Constructor
-     */
     public function __construct()
     {
         $this->films = new \Doctrine\Common\Collections\ArrayCollection();
     }
 
-    /**
-     * Add film
-     *
-     * @param \App\Entity\Film $film
-     *
-     * @return Realisateur
-     */
-    public function addFilm(\App\Entity\Film $film)
+    public function addFilm(\App\Entity\Film $film): self
     {
         $this->films[] = $film;
 
         return $this;
     }
 
-    /**
-     * Remove film
-     *
-     * @param \App\Entity\Film $film
-     */
-    public function removeFilm(\App\Entity\Film $film)
+    public function removeFilm(\App\Entity\Film $film): self
     {
         $this->films->removeElement($film);
+
+        return $this;
     }
 
-    /**
-     * Get films
-     *
-     * @return \Doctrine\Common\Collections\Collection
-     */
-    public function getFilms()
+    public function getFilms(): Collection
     {
         return $this->films;
     }
 
-    /**
-     * Get nomComplet
-     *
-     * @return string
-     */
-    public function getNomComplet ()
+    public function getNomComplet (): ?string
     {
         return $this->nomComplet;
     }
 
-    /**
-     * Set nomComplet
-     *
-     * @param string $nomComplet
-     *
-     * @return Realisateur
-     */
-    public function setNomComplet($nom)
+    public function setNomComplet($nom): self
     {
         $this->nomComplet = $nom;
 

+ 101 - 304
src/Entity/User.php

@@ -2,328 +2,193 @@
 
 namespace App\Entity;
 
+use App\Repository\UserRepository;
+use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Security\Core\User\UserInterface;
 use Symfony\Component\Validator\Constraints as Assert;
 use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
 use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
 
-/**
- * User
- *
- * @ORM\Table(name="user")
- * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
- * @UniqueEntity(fields="username", message="Le username est déjà utilisé")
- * @UniqueEntity(fields="mail", message="L'email est déjà utilisé")
- * @UniqueEntity(fields="token", message="Erreur, token non unique")
- *
- */
+#[ORM\Table(name: "user")]
+#[ORM\Entity(repositoryClass: UserRepository::class)]
+#[UniqueEntity(fields: "username", message: "Le username est déjà utilisé")]
+#[UniqueEntity(fields: "mail", message: "L'email est déjà utilisé")]
+#[UniqueEntity(fields: "token", message: "Erreur, token non unique")]
+
 class User implements UserInterface,PasswordAuthenticatedUserInterface
 {
-    /**
-     * @var int
-     *
-     * @ORM\Column(name="id", type="integer")
-     * @ORM\Id
-     * @ORM\GeneratedValue(strategy="AUTO")
-     */
+
+    #[ORM\Column(name: "id", type: "integer")]
+    #[ORM\Id]
+    #[ORM\GeneratedValue(strategy: "AUTO")]
     private $id;
 
-    /**
- * @var string
- *
- * @ORM\Column(name="username", type="string", length=191, unique=true)
- */
+    #[ORM\Column(name: "username", type: "string", length: 191, unique: true)]
     private $username;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="prenom", type="string", length=191, nullable=true)
-     */
+    #[ORM\Column(name: "prenom", type: "string", length: 191, nullable: true)]
     private $prenom;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="nom", type="string", length=191, nullable=true)
-     */
+    #[ORM\Column(name: "nom", type: "string", length: 191, nullable: true)]
     private $nom;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="mail", type="string", length=191, unique=true)
-     * @Assert\Email()
-     */
+    #[ORM\Column(name: "mail", type: "string", length: 191, unique: true)]
+    #[Assert\Email()]
     private $mail;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="password", type="string", length=191)
-     */
+    #[ORM\Column(name: "password", type: "string", length: 191)]
     private $password;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="token", type="string", length=191, unique=true)
-     */
+    #[ORM\Column(name: "token", type: "string", length: 191, unique: true)]
+
     private $token;
 
-    /**
-     * @var \DateTime
-     *
-     * @ORM\Column(name="token_validity", type="datetime")
-     * @Assert\Type("DateTime")
-     */
+    #[ORM\Column(name: "token_validity", type: "datetime")]
+    #[Assert\Type("DateTime")]
     private $tokenValidity;
 
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="salt", type="string", length=191, nullable=true)
-     */
+    #[ORM\Column(name: "salt", type: "string", length: 191, nullable: true)]
     private $salt;
 
-    /**
-     * @var boolean
-     *
-     * @ORM\Column(name="is_active", type="boolean")
-     */
+    #[ORM\Column(name: "is_active", type: "boolean")]
     private $isActive;
 
-    /**
-     * @var array
-     *
-     * @ORM\Column(name="roles", type="array")
-     */
+    #[ORM\Column(name: "roles", type: "array")]
     private $roles = array();
 
-    /**
-     * @var \DateTime
-     *
-     * @ORM\Column(name="last_activity", type="datetime")
-     * @Assert\Type("DateTime")
-     */
+    #[ORM\ManyToMany(targetEntity: Film::class, mappedBy: "usersWantToView")]
+    private $films;
+
+    #[ORM\ManyToMany(targetEntity: Film::class, mappedBy: "usersWhoSeen")]
+    private $filmsVus;
+
+    #[ORM\OneToOne(targetEntity: Profile::class, mappedBy: "user", cascade: ["persist", "remove"])]
+    private $profile;
+
+    #[ORM\Column(name: "last_activity", type: "datetime")]
+    #[Assert\Type("DateTime")]
     private $lastActivity;
 
-    /**
-     * @return \DateTime
-     */
-    public function getLastActivity()
+    public function getLastActivity(): ?\DateTimeInterface
     {
         return $this->lastActivity;
     }
 
-    /**
-     * @param \DateTime $lastActivity
-     */
-    public function setLastActivity($lastActivity)
+    public function setLastActivity(?\DateTimeInterface $lastActivity): self
     {
         $this->lastActivity = $lastActivity;
+
+        return $this;
     }
 
-    /**
-     * @return boolean
-     */
-    public function isActiveNow()
+    public function isActiveNow(): bool
     {
         $delay = new \DateTime('5 minutes ago');
 
         return ( $this->getLastActivity() > $delay );
     }
 
-    /**
-     * @ORM\ManyToMany(targetEntity="App\Entity\Film", mappedBy="usersWantToView")
-     * @var \Doctrine\Common\Collections\Collection
-     */
-    private $films;
-
-    /**
-     * @ORM\ManyToMany(targetEntity="App\Entity\Film", mappedBy="usersWhoSeen")
-     * @var \Doctrine\Common\Collections\Collection
-     */
-    private $filmsVus;
-
-    /**
-     * @ORM\OneToOne(targetEntity=Profile::class, mappedBy="user", cascade={"persist", "remove"})
-     */
-    private $profile;
-
-
-    /**
-     * Get id
-     *
-     * @return int
-     */
-    public function getId()
+    public function getId(): ?int
     {
         return $this->id;
     }
 
-    /**
-     * Set username
-     *
-     * @param string $username
-     *
-     * @return User
-     */
-    public function setUsername($username)
+    public function setUsername($username): self
     {
         $this->username = $username;
 
         return $this;
     }
 
-    /**
-     * @deprecated since Symfony 5.3, use getUserIdentifier instead
-     */
-    public function getUsername()
+    public function getUsername(): ?string
     {
         return (string) $this->username;
     }
 
-    /**
-     * Get UserIdentifier
-     * 
-     * @return string
-     */
-    public function getUserIdentifier()
+    public function getUserIdentifier(): ?string
     {
         return $this->username;
     }
 
-    /**
-     * @param bool $activated
-     */
-    public function setActivated($activated)
+    public function setActivated($activated): self
     {
         $this->isActive = $activated;
+
+        return $this;
     }
 
-    /**
-     * @return bool
-     */
-    public function getActivated()
+    public function getActivated(): bool
     {
         return $this->isActive;
     }
 
-    /**
-     * @return string
-     */
-    public function getPrenom()
+    public function getPrenom(): ?string
     {
         return $this->prenom;
     }
 
-    /**
-     * @param string $prenom
-     */
-    public function setPrenom($prenom)
+    public function setPrenom($prenom): self
     {
         $this->prenom = $prenom;
+
+        return $this;
     }
 
-    /**
-     * @return string
-     */
-    public function getNom()
+    public function getNom(): ?string
     {
         return $this->nom;
     }
 
-    /**
-     * @param string $nom
-     */
-    public function setNom($nom)
+    public function setNom($nom): self
     {
         $this->nom = $nom;
+
+        return $this;
     }
 
-    /**
-     * @return string
-     */
-    public function getMail()
+    public function getMail(): ?string
     {
         return $this->mail;
     }
 
-    /**
-     * @param string $mail
-     */
-    public function setMail($mail)
+    public function setMail($mail): self
     {
         $this->mail = $mail;
-    }
 
+        return $this;
+    }
 
-    /**
-     * Set password
-     *
-     * @param string $password
-     *
-     * @return User
-     */
-    public function setPassword($password)
+    public function setPassword($password): self
     {
         $this->password = $password;
 
         return $this;
     }
 
-    /**
-     * Get password
-     *
-     * @return string
-     */
     public function getPassword() : ?string
     {
         return $this->password;
     }
 
-    /**
-     * Set salt
-     *
-     * @param string $salt
-     *
-     * @return User
-     */
-    public function setSalt($salt)
+    public function setSalt($salt): self
     {
         $this->salt = $salt;
 
         return $this;
     }
 
-    /**
-     * Get salt
-     *
-     * @return string
-     */
-    public function getSalt()
+    public function getSalt(): ?string
     {
         return $this->salt;
     }
 
-    /**
-     * Get token
-     *
-     * @return string
-     */
-    public function getToken()
+    public function getToken(): ?string
     {
         return $this->token;
     }
 
-    /**
-     * Set token
-     *
-     * @return User
-     */
-    public function setToken($token)
+    public function setToken($token): self
     {
         //$this->token = hash("sha512", uniqid());
         $this->token = $token;
@@ -332,51 +197,27 @@ class User implements UserInterface,PasswordAuthenticatedUserInterface
         return $this;
     }
 
-    /**
-     * Get token_validity
-     *
-     * @return \DateTime
-     */
-    public function getTokenValidity()
+    public function getTokenValidity(): ?\DateTimeInterface
     {
         return $this->tokenValidity;
     }
 
-    /**
-     * Set token
-     *
-     * @param \DateTime $tokenValidity
-     *
-     * @return User
-     */
-    private function setTokenValidity(\DateTime $tokenValidity)
+    private function setTokenValidity(\DateTimeInterface $tokenValidity)
     {
         $this->tokenValidity = $tokenValidity;
 
         return $this;
     }
 
-    /**
-     * Is ValidToken
-     *
-     * @return boolean
-     *
-     */
-
-    public function isValidToken()
+    public function isValidToken(): bool
     {
-        $expire = $this->getTokenValidity()->modify('+1 hour');
+        $expire = (new \DateTime($this->getTokenValidity()->format("Y-m-d H:i:s")))->modify('+1 hour');
+        dump($expire);
+        dump(new \DateTime('now'));
         return ( $expire > new \DateTime('now') );
     }
 
-    /**
-     * Set roles
-     *
-     * @param array $roles
-     *
-     * @return User
-     */
-    public function setRoles($roles)
+    public function setRoles($roles): self
     {
         $this->roles = $roles;
 
@@ -384,22 +225,20 @@ class User implements UserInterface,PasswordAuthenticatedUserInterface
     }
 
     /**
-     * Get roles
-     *
-     * @return array
+     * @see UserInterface
      */
-    public function getRoles()
+    public function getRoles(): array
     {
-        return $this->roles;
+        $roles = $this->roles;
+        return array_unique($roles);
+
     }
 
-    public function eraseCredentials()
+    public function eraseCredentials(): void
     {
 
     }
-    /**
-     * Constructor
-     */
+
     public function __construct()
     {
         $this->films = new \Doctrine\Common\Collections\ArrayCollection();
@@ -409,80 +248,48 @@ class User implements UserInterface,PasswordAuthenticatedUserInterface
     }
 
     ///////////////////////////////////////////////////////////////
-    /**
-     * Add film
-     *
-     * @param \App\Entity\Film $film
-     *
-     * @return User
-     */
-    public function addFilm(\App\Entity\Film $film)
+   
+    public function addFilm(\App\Entity\Film $film): self
     {
         $this->films[] = $film;
 
         return $this;
     }
 
-    /**
-     * Remove film
-     *
-     * @param \App\Entity\Film $film
-     */
-    public function removeFilm(\App\Entity\Film $film)
+    public function removeFilm(\App\Entity\Film $film): self
     {
         $this->films->removeElement($film);
+
+        return $this;
     }
 
-    /**
-     * Get films
-     *
-     * @return \Doctrine\Common\Collections\Collection
-     */
-    public function getFilms()
+    public function getFilms(): Collection
     {
         return $this->films;
     }
 
     ///////////////////////////////////////////////////////////////////////////
-    /**
-     * Add film
-     *
-     * @param \App\Entity\Film $film
-     *
-     * @return User
-     */
-    public function addFilmVu(\App\Entity\Film $film)
+
+    public function addFilmVu(\App\Entity\Film $film): self
     {
         $this->filmsVus[] = $film;
 
         return $this;
     }
 
-    /**
-     * Remove film
-     *
-     * @param \App\Entity\Film $film
-     */
-    public function removeFilmVu(\App\Entity\Film $film)
+    public function removeFilmVu(\App\Entity\Film $film): self
     {
         $this->filmsVus->removeElement($film);
+
+        return $this;
     }
 
-    /**
-     * Get films
-     *
-     * @return \Doctrine\Common\Collections\Collection
-     */
-    public function getFilmsVus()
+    public function getFilmsVus(): Collection
     {
         return $this->filmsVus;
     }
 
-    /**
-     * Get nomComplet
-     * @return string
-     */
-    public function getNomComplet()
+    public function getNomComplet(): ?string
     {
         if ($this->prenom == null && $this->nom == null)
         {
@@ -491,28 +298,27 @@ class User implements UserInterface,PasswordAuthenticatedUserInterface
         return $this->getPrenom()." ".$this->getNom();
     }
 
-    public function isAccountNonExpired()
+    public function isAccountNonExpired(): bool
     {
         return true;
     }
 
-    public function isAccountNonLocked()
+    public function isAccountNonLocked(): bool
     {
         return true;
     }
 
-    public function isCredentialsNonExpired()
+    public function isCredentialsNonExpired(): bool
     {
         return true;
     }
 
-    public function isEnabled()
+    public function isEnabled(): bool
     {
         return $this->isActive;
     }
 
-    /** @see \Serializable::serialize() */
-    public function serialize()
+    public function serialize(): ?string
     {
         return serialize(array(
             $this->id,
@@ -524,8 +330,7 @@ class User implements UserInterface,PasswordAuthenticatedUserInterface
         ));
     }
 
-    /** @see \Serializable::unserialize() */
-    public function unserialize($serialized)
+    public function unserialize($serialized):void 
     {
         list (
             $this->id,
@@ -538,20 +343,12 @@ class User implements UserInterface,PasswordAuthenticatedUserInterface
             ) = unserialize($serialized, array('allowed_classes' => false));
     }
 
-    /**
-     * @param \App\Entity\Film $film
-     * @return boolean
-     */
-    public function wantToSee(Film $film)
+    public function wantToSee(Film $film): bool
     {
         return $this->getFilms()->contains($film);
     }
 
-    /**
-     * @param \App\Entity\Film $film
-     * @return boolean
-     */
-    public function haveSeen(Film $film)
+    public function haveSeen(Film $film): bool
     {
         return $this->getFilmsVus()->contains($film);
     }

+ 2 - 1
src/Form/MediaVideoType.php

@@ -2,6 +2,7 @@
 
 namespace App\Form;
 
+use App\Entity\MediaVideo;
 use Symfony\Component\Form\AbstractType;
 use Symfony\Component\Form\Extension\Core\Type\TextType;
 use Symfony\Component\Form\FormBuilderInterface;
@@ -24,7 +25,7 @@ class MediaVideoType extends AbstractType
     public function configureOptions(OptionsResolver $resolver)
     {
         $resolver->setDefaults(array(
-            'data_class' => 'App\Entity\MediaVideo',
+            'data_class' => MediaVideo::class,
         ));
     }
 

+ 0 - 0
src/Migrations/.gitignore


+ 1 - 1
templates/security/mail_activate.html.twig

@@ -1,6 +1,6 @@
 Bonjour {{ user.nomComplet }},
 
-Votre compte est bien enregistré, merci de cliquer sur le lien suivant pour l'activer.
+Votre compte est bien enregistré, merci de cliquer sur le lien suivant pour l'activer (valable 1h)
 
 {{ lien }}
 

+ 1 - 1
templates/security/mail_tokenmdp.html.twig

@@ -1,6 +1,6 @@
 Bonjour {{ user.nomComplet }},
 
-Voici le lien pour modifier votre mot de passe. Il est valable 2 heures.
+Voici le lien pour modifier votre mot de passe. Il est valable 1 heure.
 
 {{ lien }}
 

+ 1 - 1
templates/security/password.html.twig

@@ -4,8 +4,8 @@
 {% block titre %}Changer de mot de passe{%  endblock %}
 
 {% block body %}
+    <h2>Vous pouvez changer de mot de passe ici</h2>
     <div class="d-flex justify-content-center">
-        <h2>Vous pouvez changer de mot de passe ici</h2>
         {{ form(form) }}
     </div>
 {% endblock %}

Some files were not shown because too many files changed in this diff