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?

¿Fue útil?

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]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top