<?php
namespace App\Controller;
use App\Service\CssService;
use App\Service\JsService;
use App\Service\SvgService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class AssetController extends AbstractController
{
#[Route('/css/{version}.css', name: 'css', requirements:['version' => '[0-9.]+'])]
public function css(CssService $cssService, $version): Response
{
$css = $cssService->build($version);
if ($this->getParameter('kernel.environment') === 'prod') {
// Mise en cache en gérant un fichier static servi par apache pour la fois suivante
\file_put_contents($this->getParameter('public_directory') . 'css/' . $version . '.css', $css);
}
return new Response(
$css,
Response::HTTP_OK,
[
'Content-Type' => 'text/css'
]
);
}
#[Route('/js/{version}.js', name: 'js', requirements:['version' => '[0-9.]+'])]
public function js(JsService $jsService, $version): Response
{
$js = $jsService->build($version);
if ($this->getParameter('kernel.environment') === 'prod') {
// Mise en cache en gérant un fichier static servi par apache pour la fois suivante
\file_put_contents($this->getParameter('public_directory') . 'js/' . $version . '.js', $js);
}
return new Response(
$js,
Response::HTTP_OK,
[
'Content-Type' => 'text/javascript'
]
);
}
#[Route('/img/{version}.svg', name: 'svg', requirements:['version' => '[0-9.]+'])]
public function svg(SvgService $svgService, $version): Response
{
$svg = $svgService->build($version);
if ($this->getParameter('kernel.environment') === 'prod') {
// Mise en cache en gérant un fichier static servi par apache pour la fois suivante
\file_put_contents($this->getParameter('public_directory') . 'img/' . $version . '.svg', $svg);
}
return new Response(
$svg,
Response::HTTP_OK,
[
'Content-Type' => 'image/svg+xml'
]
);
}
#[Route('/designsystem', name: 'designsystem')]
public function designsystem(): Response
{
return $this->render('assets/designsystem.html.twig');
}
}