2011-07-12 14 views
11

Sé que Twig tiene un filtro {% spaceless%}, pero solo elimina espacios entre las etiquetas html.Cómo comprimir la salida html en Symfony2?

Necesito devolver una sola línea de html para cada página en el sitio. Tengo una expresión regular que puede manejar eso, pero no sé dónde usarla en sf2, ya que todo sucede automágicamente.

Creo que tengo para registrar un nuevo motor de plantillas, o añadir una extensión de rama, pero no pude encontrar suficiente documentación sobre el tema, así que estoy atascado

¿Alguna idea?

Respuesta

10

Para ejecutar su expresión regular en todos los resultados de visualización, puede enganchar en el evento kernel.response que se envía mediante el marco Symfony2.

Desde el apartado de kernel.response:

El propósito de este evento es permitir que otros sistemas para modificar o reemplaza el objeto de respuesta después de su creación:

public function onKernelResponse(FilterResponseEvent $event) 
{ 
    $response = $event->getResponse(); 

    // ... modify the response object 
} 

Recomendaría leyendo el capítulo Internals para obtener más detalles.

+1

Sí, estoy seguro. No creo que el filtro sin espacio vaya a hacer eso, así que no puedo informarlo como un error. Solo elimina espacios entre etiquetas html. – HappyDeveloper

+0

A veces incluso falla al hacer eso, veo muchas líneas nuevas en mi código, entre etiquetas html, así que solo quiero ejecutar mi propia expresión regular como siempre lo hice, pero no sé cómo hacerlo en este marco . – HappyDeveloper

+0

Respuesta actualizada. –

Cuestiones relacionadas