<?php
namespace App\Controller;
use App\Entity\PartnerCategory;
use App\Entity\Resources;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController
{
/**
* @Route("/", name="home")
*/
public function index()
{
return $this->render('home/index.html.twig', [
'controller_name' => 'HomeController',
]);
}
/**
* @Route("/clean", name="clean")
*/
public function clean(EntityManagerInterface $entityManager)
{
$ressources = $entityManager->getRepository(Resources::class)->findAll();
$category = $entityManager->getRepository(PartnerCategory::class)->findAll();
$filesRessources = [];
foreach ($ressources as $item) { $filesRessources[] = $item->getLink();}
foreach ($category as $item) { $filesRessources[] = $item->getImage();}
$dir = $this->getParameter('upload_directory');
$extensionToDelete = "jpeg";
$files = scandir($dir);
unset($files[0]);
unset($files[1]);
$filesToDelete=[];
foreach ($files as $file){
$arrayFile = explode(".", $file);
if($arrayFile[1] == $extensionToDelete){
$fileJoin = implode(".", $arrayFile);
if (!in_array($fileJoin, $filesRessources)){
$filesToDelete[] = $fileJoin;
}
}
}
foreach ($filesToDelete as $item) {
unlink($dir.'/'.$item);
}
return new JsonResponse("Ok, clean", 200);
}
}