Minificar el HTML de respuesta en Laravel 4

Dejo por aquí un sencillo, elegante y práctico filtro para Laravel 4 que nos permitirá minificar el código html generado por Laravel al devolver cualquier vista o blade.

Para ello, debemos editar el filtro App::after, definido en

app/filters.php

Y añadir el siguiente contenido:

App::after(function($request, $response)
{
    // HTML Minification
    if(App::Environment() != 'local')
    {
        if($response instanceof Illuminate\Http\Response)
        {
            $output = $response->getOriginalContent();
            // Clean comments
            $output = preg_replace('/<!--([^\[|(<!)].*)/', '', $output);
            $output = preg_replace('/(?<!\S)\/\/\s*[^\r\n]*/', '', $output);
            // Clean Whitespace
            $output = preg_replace('/\s{2,}/', '', $output);
            $output = preg_replace('/(\r?\n)/', '', $output);
            $response->setContent($output);
        }
    }
});

Con ello conseguimos que nuestra respuesta sea mucho más rápida a los clientes dado que eliminamos espacios en blanco, comentarios y otros elementos de nuestro código generado que los navegadores no necesitan.

Fuente original: Aquí

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s