Bonjour,
je travaille sur un projet de site pour mes cours avec une galerie photo, et j'essaie d'utiliser les filtres de liipImagine à l'intérieur de mon controller qui gère l'upload de mes photos pour pouvoir créer des miniatures des photos que j'upload en même temps,
j'utilise cette méthode que j'ai vus en cours pour gérer l'upload :
Dans la doc de LiipImagine j'ai trouvé ça pour l'utiliser dans mon controller,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 /** * @Route("/new", name="photo_new", methods={"GET","POST"}) */ public function new(CategorieRepository $cat, Request $request): Response { $photo = new Photo(); $form = $this->createForm(PhotoType::class, $photo); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $entityManager = $this->getDoctrine()->getManager(); // Je récupère les informations du fichier uploadé $photoUploade = $form->get("nom_photo")->getData(); // Je récupère le nom du fichier uploadé $nomPhoto = pathinfo($photoUploade->getClientOriginalName(), PATHINFO_FILENAME); // Je remplace les espaces dans le nom du fichier $nomPhoto = str_replace(" ", "_", $nomPhoto); // Je rajoute un string unique (pour éviter les fichiers doublons) et l'extension du fichier téléchargé $nomPhoto .= uniqid() . "." . $photoUploade->guessExtension(); // J'enregistre le fichier uploadé sur mon serveur, dans le dossier public/images $photoUploade->move("images", $nomPhoto); // Pour enregistrer l'information en BDD $photo->setnomPhoto($nomPhoto); $entityManager->persist($photo); $entityManager->flush(); return $this->redirectToRoute('photo_index'); }
Je remplaçais alors le 'upload/foo.jpg' par ma variable qui contient le nom du fichier complet et retravailler à savoir $nomPhoto et le 'my_thumb' par le nom de mon filtre Liip, et je lançais un dd($ressourcePath) pour essayer de comprendre qui faire ensuite mais j'obtiens systématiquement l'erreur " Service "liip_imagine.cache.manager" not found "
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 /** @var FilterService */ $imagine = $this ->container ->get('liip_imagine.service.filter'); // 1) Simple filter, OR $resourcePath = $imagine->getUrlOfFilteredImage('uploads/foo.jpg', 'my_thumb');
Le problème est qu'en grand débutant que je suis, la doc n'est pas suffisamment claire pour moi, j'ai compris qu'il fallait que j'injecte la dépendance dans mon controller (via l'erreur) mais je ne sais pas vraiment comment faire, je ne sais pas quel "use" utiliser, ni si j'appelle correctement ensuite le filtre dont j'ai besoin sur la photo que j'upload pour en créer une version miniature en plus.
Pourriez vous m'aider à y voir plus clair ?
Partager