- Ajout de node et npm dans la Dockerfile - Ajout des Factories et Fixtures - Ajout de npm-install dans Make install
47 lines
1.3 KiB
PHP
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();
|
|
}
|
|
} |