Respuesta sin espacio basada en el entorno Symfony2
Pregunta
Lo que estoy buscando es la forma de habilitar/deshabilitar {% spaceless %}{% endspaceless %}
envoltura para todo Response
objeto basado en el entorno de simfonía actual. Creo que debería escuchar kernel.view
Evento y modificación de la respuesta allí, pero no puedo hacerlo.
La razón de esto es que es mejor depurar con todos esos espacios, pero manténgalo minificado para el uso de la producción.
¿Alguien ha hecho esto?
Solución
los spaceless
es una etiqueta de ramita, la respuesta nunca lo sabrá.
No se puede deshabilitar fácilmente ya que es parte del Twig_Extension_Core
y no hay opción para deshabilitarlo.
Tienes que encontrar otra forma. Tal vez directamente de su plantilla (usarla o no depender del entorno).
Otros consejos
Implementar un ResponseIstener en su paquete:
class ResponseListener
{
private $container;
public function __construct($container)
{
$this->container = $container;
}
public function onKernelResponse(FilterResponseEvent $event)
{
// Compress HTML on prod environment only
if($this->container->get('kernel')->getEnvironment() == 'prod')
$event->getResponse()->setContent(trim(preg_replace('/>\s+</', '><', $event->getResponse()->getContent())));
}
}
Luego declare en Services.yml:
services:
kernel.listener.response_listener:
class: AppBundle\Listener\ResponseListener
tags:
- { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }
arguments: [@service_container]