-
-
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.