Files
Mangarr/src/Controller/MenuController.php
Jérémy Guillot 291e85338a - Portage des fonctionnalités de la branche main
- Ajout de node et npm dans la Dockerfile

- Ajout des Factories et Fixtures

- Ajout de npm-install dans Make install
2024-06-03 19:41:24 +02:00

47 lines
1.3 KiB
PHP

<?php
namespace App\Controller;
use App\Repository\MangaRepository;
use App\Service\LelScansProviderService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\String\Slugger\AsciiSlugger;
class MenuController extends AbstractController
{
private MangaRepository $mangaRepository;
private LelScansProviderService $mangaProviderService;
public function __construct(MangaRepository $mangaRepository, LelScansProviderService $mangaProviderService)
{
$this->mangaRepository = $mangaRepository;
$this->mangaProviderService = $mangaProviderService;
}
public function menu(): Response
{
$availableManga = $this->mangaProviderService->getMangaList();
foreach($availableManga as $key => $manga) {
$availableManga[$key]['slug'] = $this->titleToSlug($manga['name']);
}
$mangas = $this->mangaRepository->findAll();
return $this->render('menu/menu.html.twig', [
'availableManga' => $availableManga,
'mangas' => $mangas,
]);
}
private function slugToTitle(string $slug): string
{
$slugger = new AsciiSlugger();
return $slugger->slug($slug)->replace('-', ' ')->title(true)->toString();
}
private function titleToSlug(string $title): string
{
$slugger = new AsciiSlugger();
return $slugger->slug($title)->lower()->toString();
}
}