@@ -146,6 +146,9 @@  | 
                                                    ||
| 146 | 146 | $this->table(['Minification strategy', 'Size (KB)', 'Saved (KB)', 'Size (%)'], $rows);  | 
                                                        
| 147 | 147 | }  | 
                                                        
| 148 | 148 | |
| 149 | + /**  | 
                                                        |
| 150 | + * @param integer $new  | 
                                                        |
| 151 | + */  | 
                                                        |
| 149 | 152 | private function calculateImprovementPercentage($new, $old)  | 
                                                        
| 150 | 153 |      { | 
                                                        
| 151 | 154 | return ($new - $old) / $old * 100;  | 
                                                        
@@ -52,7 +52,7 @@ discard block  | 
                                                    ||
| 52 | 52 | */  | 
                                                        
| 53 | 53 | protected function setupCompiler()  | 
                                                        
| 54 | 54 |      { | 
                                                        
| 55 | -        Blade::extend(function ($value, $compiler) { | 
                                                        |
| 55 | +        Blade::extend(function($value, $compiler) { | 
                                                        |
| 56 | 56 | BladePlaceholder::setBladeTags($this->getBladeTags($compiler));  | 
                                                        
| 57 | 57 | |
| 58 | 58 | $context = new MinifyContext(new PlaceholderContainer());  | 
                                                        
@@ -123,24 +123,24 @@ discard block  | 
                                                    ||
| 123 | 123 | $totalBytesSavedPercentage = 0;  | 
                                                        
| 124 | 124 | |
| 125 | 125 | $lastReferencePoint = null;  | 
                                                        
| 126 | -        $rows = $referencePoints->map(function (ReferencePoint $referencePoint) use (&$lastReferencePoint, &$totalBytesSavedPercentage) { | 
                                                        |
| 126 | +        $rows = $referencePoints->map(function(ReferencePoint $referencePoint) use (&$lastReferencePoint, &$totalBytesSavedPercentage) { | 
                                                        |
| 127 | 127 | $bytesSaved = '';  | 
                                                        
| 128 | 128 | $bytesSavedPercentage = '';  | 
                                                        
| 129 | 129 |              if ($lastReferencePoint != null) { | 
                                                        
| 130 | 130 | $bytesSaved = $lastReferencePoint->getKiloBytes() - $referencePoint->getKiloBytes();  | 
                                                        
| 131 | 131 | $totalBytesSavedPercentage += $bytesSavedPercentage = $this->calculateImprovementPercentage($referencePoint->getKiloBytes(), $lastReferencePoint->getKiloBytes());  | 
                                                        
| 132 | - $bytesSavedPercentage = round(abs($bytesSavedPercentage),1).'%';  | 
                                                        |
| 132 | + $bytesSavedPercentage = round(abs($bytesSavedPercentage), 1).'%';  | 
                                                        |
| 133 | 133 | }  | 
                                                        
| 134 | 134 | $lastReferencePoint = $referencePoint;  | 
                                                        
| 135 | 135 | |
| 136 | - return [$referencePoint->getName(), round($referencePoint->getKiloBytes(),1), round($bytesSaved,1), $bytesSavedPercentage];  | 
                                                        |
| 136 | + return [$referencePoint->getName(), round($referencePoint->getKiloBytes(), 1), round($bytesSaved, 1), $bytesSavedPercentage];  | 
                                                        |
| 137 | 137 | });  | 
                                                        
| 138 | 138 | |
| 139 | 139 | $rows[] = [  | 
                                                        
| 140 | 140 | 'Total',  | 
                                                        
| 141 | - round($referencePoints->last()->getKiloBytes(),1),  | 
                                                        |
| 142 | - abs(round($referencePoints->last()->getKiloBytes() - $referencePoints->first()->getKiloBytes(),1)),  | 
                                                        |
| 143 | - abs(round($totalBytesSavedPercentage,1)).'%'  | 
                                                        |
| 141 | + round($referencePoints->last()->getKiloBytes(), 1),  | 
                                                        |
| 142 | + abs(round($referencePoints->last()->getKiloBytes() - $referencePoints->first()->getKiloBytes(), 1)),  | 
                                                        |
| 143 | + abs(round($totalBytesSavedPercentage, 1)).'%'  | 
                                                        |
| 144 | 144 | ];  | 
                                                        
| 145 | 145 | |
| 146 | 146 | $this->table(['Minification strategy', 'Size (KB)', 'Saved (KB)', 'Size (%)'], $rows);  | 
                                                        
@@ -159,7 +159,7 @@ discard block  | 
                                                    ||
| 159 | 159 | protected function getOptions()  | 
                                                        
| 160 | 160 |      { | 
                                                        
| 161 | 161 | $options = Collection::make(Options::options())  | 
                                                        
| 162 | -            ->map(function (Option $option) { | 
                                                        |
| 162 | +            ->map(function(Option $option) { | 
                                                        |
| 163 | 163 | return [  | 
                                                        
| 164 | 164 | $option->getName(),  | 
                                                        
| 165 | 165 | null,  | 
                                                        
@@ -17,7 +17,7 @@  | 
                                                    ||
| 17 | 17 | /**  | 
                                                        
| 18 | 18 | * Get all the steps which are measured.  | 
                                                        
| 19 | 19 | *  | 
                                                        
| 20 | - * @return array  | 
                                                        |
| 20 | + * @return ReferencePoint[]  | 
                                                        |
| 21 | 21 | */  | 
                                                        
| 22 | 22 | public function getReferencePoints();  | 
                                                        
| 23 | 23 | }  | 
                                                        
@@ -37,7 +37,7 @@  | 
                                                    ||
| 37 | 37 | }  | 
                                                        
| 38 | 38 | |
| 39 | 39 | /**  | 
                                                        
| 40 | - * @return float  | 
                                                        |
| 40 | + * @return integer  | 
                                                        |
| 41 | 41 | */  | 
                                                        
| 42 | 42 | public function getKiloBytes()  | 
                                                        
| 43 | 43 |      { | 
                                                        
@@ -78,6 +78,9 @@  | 
                                                    ||
| 78 | 78 | $this->measurement->createReferencePoint($this->calculateInputLength($input), $keyName);  | 
                                                        
| 79 | 79 | }  | 
                                                        
| 80 | 80 | |
| 81 | + /**  | 
                                                        |
| 82 | + * @param string $input  | 
                                                        |
| 83 | + */  | 
                                                        |
| 81 | 84 | private function calculateInputLength($input)  | 
                                                        
| 82 | 85 |      { | 
                                                        
| 83 | 86 | return mb_strlen($input, '8bit') + $this->placeholderContainer->getOriginalSize() - $this->placeholderContainer->getPlaceholderSize();  | 
                                                        
@@ -3,7 +3,6 @@  | 
                                                    ||
| 3 | 3 | namespace ArjanSchouten\HtmlMinifier\Placeholders;  | 
                                                        
| 4 | 4 | |
| 5 | 5 | use ArjanSchouten\HtmlMinifier\PlaceholderContainer;  | 
                                                        
| 6 | -use ArjanSchouten\HtmlMinifier\Repositories\HtmlInlineElementsRepository;  | 
                                                        |
| 7 | 6 | |
| 8 | 7 | class WhitespacePlaceholder implements PlaceholderInterface  | 
                                                        
| 9 | 8 |  { | 
                                                        
@@ -63,7 +63,7 @@ discard block  | 
                                                    ||
| 63 | 63 | \s+ # Match minimal 1 whitespace between the elements  | 
                                                        
| 64 | 64 |                  <('.$elementsRegex.')           # Match the start of the next inline element | 
                                                        
| 65 | 65 | /xi',  | 
                                                        
| 66 | -            function ($match) use ($placeholderContainer) { | 
                                                        |
| 66 | +            function($match) use ($placeholderContainer) { | 
                                                        |
| 67 | 67 | // Where going to respect one space between the inline elements.  | 
                                                        
| 68 | 68 |                  $placeholder = $placeholderContainer->addPlaceholder(' '); | 
                                                        
| 69 | 69 | |
@@ -93,7 +93,7 @@ discard block  | 
                                                    ||
| 93 | 93 | )  | 
                                                        
| 94 | 94 |                  <('.$elementsRegex.')       # Match starting tag | 
                                                        
| 95 | 95 | /xis',  | 
                                                        
| 96 | -            function ($match) use ($placeholderContainer) { | 
                                                        |
| 96 | +            function($match) use ($placeholderContainer) { | 
                                                        |
| 97 | 97 | return $this->replaceWhitespacesInInlineElements($match[1], $placeholderContainer).'<'.$match[3];  | 
                                                        
| 98 | 98 | }, $contents);  | 
                                                        
| 99 | 99 | }  | 
                                                        
@@ -108,7 +108,7 @@ discard block  | 
                                                    ||
| 108 | 108 | */  | 
                                                        
| 109 | 109 | private function replaceWhitespacesInInlineElements($element, PlaceholderContainer $placeholderContainer)  | 
                                                        
| 110 | 110 |      { | 
                                                        
| 111 | -        return preg_replace_callback('/>\s/', function ($match) use ($placeholderContainer) { | 
                                                        |
| 111 | +        return preg_replace_callback('/>\s/', function($match) use ($placeholderContainer) { | 
                                                        |
| 112 | 112 |              return '>'.$placeholderContainer->addPlaceholder(' '); | 
                                                        
| 113 | 113 | }, $element);  | 
                                                        
| 114 | 114 | }  | 
                                                        
@@ -134,7 +134,7 @@ discard block  | 
                                                    ||
| 134 | 134 | ((?:(?!<\/\2>).)+)  | 
                                                        
| 135 | 135 | (<\/\2>)/xis';  | 
                                                        
| 136 | 136 | |
| 137 | -        return preg_replace_callback($pattern, function ($match) use ($placeholderContainer) { | 
                                                        |
| 137 | +        return preg_replace_callback($pattern, function($match) use ($placeholderContainer) { | 
                                                        |
| 138 | 138 | return $match[1].$placeholderContainer->addPlaceholder($match[3]).$match[4];  | 
                                                        
| 139 | 139 | }, $contents);  | 
                                                        
| 140 | 140 | }  | 
                                                        
@@ -34,7 +34,7 @@ discard block  | 
                                                    ||
| 34 | 34 | */  | 
                                                        
| 35 | 35 | protected function registerBladeMinifier()  | 
                                                        
| 36 | 36 |      { | 
                                                        
| 37 | -        $this->app->singleton('blade.compiler.min', function () { | 
                                                        |
| 37 | +        $this->app->singleton('blade.compiler.min', function() { | 
                                                        |
| 38 | 38 | return new Minify();  | 
                                                        
| 39 | 39 | });  | 
                                                        
| 40 | 40 | }  | 
                                                        
@@ -46,7 +46,7 @@ discard block  | 
                                                    ||
| 46 | 46 | */  | 
                                                        
| 47 | 47 | protected function registerPhpMinifier()  | 
                                                        
| 48 | 48 |      { | 
                                                        
| 49 | -        $this->app->singleton('php.min', function () { | 
                                                        |
| 49 | +        $this->app->singleton('php.min', function() { | 
                                                        |
| 50 | 50 | return new Minify();  | 
                                                        
| 51 | 51 | });  | 
                                                        
| 52 | 52 | }  | 
                                                        
@@ -48,7 +48,7 @@  | 
                                                    ||
| 48 | 48 | )* # special part of "unrolling the loop"  | 
                                                        
| 49 | 49 | ) # use a the "unrolling the loop" technique to be able to skip escaped quotes like ="\""  | 
                                                        
| 50 | 50 | \1? # match the same quote symbol as matched before  | 
                                                        
| 51 | -            /x', function ($match) { | 
                                                        |
| 51 | +            /x', function($match) { | 
                                                        |
| 52 | 52 | return $this->minifyAttribute($match);  | 
                                                        
| 53 | 53 | }, $context->getContents()));  | 
                                                        
| 54 | 54 | }  | 
                                                        
@@ -31,7 +31,7 @@  | 
                                                    ||
| 31 | 31 | ([\'"])? # optional to use a quote  | 
                                                        
| 32 | 32 | (\1|true|false|([\s>"\'])) # match the boolean attribute name again or true|false  | 
                                                        
| 33 | 33 | \2? # match the quote again  | 
                                                        
| 34 | -            /xi', function ($match) { | 
                                                        |
| 34 | +            /xi', function($match) { | 
                                                        |
| 35 | 35 |                  if (isset($match[4])) { | 
                                                        
| 36 | 36 | return ' '.$match[1];  | 
                                                        
| 37 | 37 | }  | 
                                                        
@@ -23,7 +23,7 @@  | 
                                                    ||
| 23 | 23 | <! # search for the start of a comment  | 
                                                        
| 24 | 24 | [^>]* # search for everything without a ">"  | 
                                                        
| 25 | 25 | > # match the end of the comment  | 
                                                        
| 26 | -            /xs', function ($match) { | 
                                                        |
| 26 | +            /xs', function($match) { | 
                                                        |
| 27 | 27 |              if (Str::contains(strtolower($match[0]), 'doctype')) { | 
                                                        
| 28 | 28 | return $match[0];  | 
                                                        
| 29 | 29 | }  |