rafa.im
Rafa Gómez Follow

Rafa Gómez

Software engineer at letgo.
Part of the CodelyTV team.

Minificar el HTML generado por Laravel 4

Es muy común querer que tu web cargue más velozmente (aunque sólo sean unas décimas) y aún lo es más, que el responsable de SEO de tu empresa te exija optimizaciones en la velocidad de carga. Una de ellas es minificar el HTML resultante. En Laravel esto es muy fácil, tan sencillo como pegar este gist en /app/filters.php.


El gist contiene:

<?php

App::after(function($request, $response) {
    if (App::Environment() == 'production') {
        if ($response instanceof Illuminate\Http\Response) {
            $output = $response->getOriginalContent();

            $filters = array(
                '/<!--([^\[|(<!)].*)/' => '', // Borra los comentarios HTML
                '/<(?<!\S)\/\/\s*[^\r\n]*/' => '', /* Borra los comentarios */
                '/<\s{2,}/' => '', // Combina los espacios
                '/<(\r?\n)/' => '', // Elimina los saltos de linea
            );

            $output = preg_replace(
                array_keys($filters), array_values($filters), $output
            );

            $response->setContent($output);
        }
    }
});

Mi gist es un fork de éste de garagesocial.

¿Ves algo raro? ¡Edítame!