🔥 refactor: Supprime le compresseur HTML et son event listener.
```
This commit is contained in:
Serreau Jovann
2025-11-22 23:21:33 +01:00
parent caff8f94bc
commit 19b2cb9316
3 changed files with 2 additions and 67 deletions

View File

@@ -25,6 +25,7 @@ class LocaleListener implements EventSubscriberInterface
*/
public function onKernelRequest(RequestEvent $event)
{
/*
$request = $event->getRequest();
// Si ce n'est pas la requête principale (par exemple, un sous-requête pour un contrôleur embarqué), on ne fait rien.
@@ -54,6 +55,7 @@ class LocaleListener implements EventSubscriberInterface
// Définir la locale sur la requête.
$request->setLocale($locale);
*/
}
public static function getSubscribedEvents()

View File

@@ -1,25 +0,0 @@
<?php
namespace App\EventSubscriber;
use App\Service\Compressor\HtmlCompressor;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
use Symfony\Component\HttpKernel\Event\ExceptionEvent;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
#[AsEventListener(event: ResponseEvent::class, method: 'onResponse', priority: 10)]
class RequestSubscriber
{
public function __construct(private HtmlCompressor $htmlCompressor)
{
}
public function onResponse(ResponseEvent $event): void
{
if($_ENV['APP_ENV'] == "prod") {
$response = $event->getResponse();
$response->setContent($this->htmlCompressor->compress($response->getContent()));
$event->setResponse($response);
$event->stopPropagation();
}
}
}

View File

@@ -1,42 +0,0 @@
<?php
namespace App\Service\Compressor;
/**
* Classe HtmlCompressor
* Permet de minifier le contenu HTML en supprimant les commentaires et les espaces
* inutiles entre les balises.
*/
class HtmlCompressor
{
/**
* Minifie une chaîne de caractères contenant du HTML.
* * Cette méthode effectue les étapes suivantes :
* 1. Suppression des commentaires HTML (sauf les commentaires conditionnels IE).
* 2. Suppression des sauts de ligne, retours chariot et tabulations.
* 3. Suppression des espaces multiples.
* 4. Suppression des espaces autour des balises (entre > et <).
*
* @param string $html Le contenu HTML à minifier.
* @return string Le contenu HTML minifié.
*/
public function compress(string $html): string
{
// 1. Supprime les commentaires HTML, tout en préservant les commentaires conditionnels (<!--[if ...)
$html = preg_replace('/<!--(?!\[if|<!\[endif).*?-->/s', '', $html);
// 2. Supprime tous les sauts de ligne, retours chariot et tabulations
$html = str_replace(array("\r\n", "\r", "\n", "\t"), '', $html);
// 3. Remplace les multiples espaces par un seul espace
$html = preg_replace('/\s+/', ' ', $html);
// 4. Supprime les espaces qui se trouvent juste après '>' ou juste avant '<'
// Cela compresse l'espace entre les balises.
$html = preg_replace('/>\s</', '><', $html);
return trim($html);
}
}