-
-
Save garagesocial/6059962 to your computer and use it in GitHub Desktop.
<?php | |
### --- Snip --- ### | |
App::after(function($request, $response) | |
{ | |
// HTML Minification | |
if(App::Environment() != 'local') | |
{ | |
if($response instanceof Illuminate\Http\Response) | |
{ | |
$output = $response->getOriginalContent(); | |
$filters = array( | |
'/<!--([^\[|(<!)].*)/' => '', // Remove HTML Comments (breaks with HTML5 Boilerplate) | |
'/(?<!\S)\/\/\s*[^\r\n]*/' => '', // Remove comments in the form /* */ | |
'/\s{2,}/' => ' ', // Shorten multiple white spaces | |
'/(\r?\n)/' => '', // Collapse new lines | |
); | |
$output = preg_replace(array_keys($filters), array_values($filters), $output); | |
$response->setContent($output); | |
} | |
} | |
}); | |
### --- Snip --- ### |
Thanks for the alteration that allows for HTML comments.
One issue: Line 17 (shorten multiple white spaces) should be reduced to a space rather than nothing. The problem that I had with this was I had
class="classOne classTwo" //two spaces
and the white space reducer was reducing it down to
class="classOneclassTwo"
thus breaking my theme.
thx for this
@RodrigoEspinosa we prefer to not use HTML comments especially since Laravel ships with blade you can just use blade comments that won't show up in the output {{-- My Coment --}}
@tylerssn are you sure you are having this problem? It's currently replacing it with one space like you suggest '/\s{2,}/' => ' ',
@AucT welcome and also thanks to the original contributor
Learning Laravel. Where do you put this to make it work?
Same question here:
Learning Laravel. Where do you put this to make it work?
@rotaercz @KIrkOlson
In Laravel 4.x you should put it into app\filters.php
In modern Laravel 5.x according to the docs you should put it into middleware (see "Before & After Middleware" section).
public function handle($request, Closure $next) {
$response = $next($request);
// HTML Minification
....................
return $response;
}
Full Laravel 5.x Middleware to add to your projects, https://github.com/webciter/RemoveExcessWhitespaceMiddleware
Really nice! I think the HTML Comments migth be neccesary either way.