src/Controller/HomeController.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\PartnerCategory;
  4. use App\Entity\Resources;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. class HomeController extends AbstractController
  10. {
  11.     /**
  12.      * @Route("/", name="home")
  13.      */
  14.     public function index()
  15.     {
  16.         return $this->render('home/index.html.twig', [
  17.             'controller_name' => 'HomeController',
  18.         ]);
  19.     }
  20.     /**
  21.          * @Route("/clean", name="clean")
  22.          */
  23.         public function clean(EntityManagerInterface $entityManager)
  24.         {
  25.             $ressources $entityManager->getRepository(Resources::class)->findAll();
  26.             $category $entityManager->getRepository(PartnerCategory::class)->findAll();
  27.             $filesRessources = [];
  28.             foreach ($ressources as $item) { $filesRessources[] = $item->getLink();}
  29.             foreach ($category as $item) { $filesRessources[] = $item->getImage();}
  30.             $dir    $this->getParameter('upload_directory');
  31.             $extensionToDelete "jpeg";
  32.             $files scandir($dir);
  33.             unset($files[0]);
  34.             unset($files[1]);
  35.             $filesToDelete=[];
  36.             foreach ($files as $file){
  37.                 $arrayFile explode("."$file);
  38.                 if($arrayFile[1] == $extensionToDelete){
  39.                     $fileJoin implode("."$arrayFile);
  40.                     if (!in_array($fileJoin$filesRessources)){
  41.                         $filesToDelete[] = $fileJoin;
  42.                     }
  43.                 }
  44.             }
  45.             foreach ($filesToDelete as $item) {
  46.                 unlink($dir.'/'.$item);
  47.             }
  48.             return new JsonResponse("Ok, clean"200);
  49.         }
  50. }