Minify

Abstract minifier class. Please report bugs on https://github.com/matthiasmullie/minify/issues

Known subclasses

MatthiasMullie\Minify\CSS, MatthiasMullie\Minify\JS
Abstract



Open source code
Methods Summary
public
# __construct( )
Init the minify class - optionally, code may be passed along already.
public
# add( string|string[] $data )
Add a file or straight-up code to be minified.
public
# minify( string $path = NULL )
Minify the data & (optionally) saves it to a file.
public
# gzip( string $path = NULL, int $level = 9 )
Minify & gzip the data & (optionally) saves it to a file.
public
# cache( Psr\Cache\CacheItemInterface $item )
Minify the data & write it to a CacheItemInterface object.
abstract public
# execute( string $path = NULL )
Minify the data.
protected
# load( string $data )
Load data.
protected
# save( string $content , string $path )
Save to file.
protected
# registerPattern( string $pattern , string|callable $replacement = '' )
Register a pattern to execute against the source content.
protected
# replace( string $content )
We can't "just" run some regular expressions against JavaScript: it's a complex language. E.g. having an occurrence of // xyz would be a comment, unless it's used within a string. Of you could have something that looks like a 'string', but inside a comment. The only way to accurately replace these pieces is to traverse the JS one character at a time and try to find whatever starts first.
protected
# replacePattern( string $pattern , string|callable $replacement , string $content )
This is where a pattern is matched against $content and the matches are replaced by their respective value. This function will be called plenty of times, where $content will always move up 1 character.
protected
# extractStrings( string $chars = '\'"' )
Strings are a pattern we need to match, in order to ignore potential code-like content inside them, but we just want all of the string content to remain untouched. This method will replace all string content with simple STRING# placeholder text, so we've rid all strings from characters that may be misinterpreted. Original string content will be saved in $this->extracted and after doing all other minifying, we can restore the original content via restoreStrings().
protected
# restoreExtractedData( string $content )
This method will restore all extracted data (strings, regexes) that were replaced with placeholder text in extract*(). The original content was saved in $this->extracted.
protected
# canImportFile( string $path )
Check if the path is a regular file and can be read.
protected
# openFileForWriting( string $path )
Attempts to open file specified by $path for writing.
protected
# writeToFile( resource $handler , string $content , string $path = '' )
Attempts to write $content to the file specified by $handler. $path is used for printing exceptions.
Properties Summary
protected string[] $data
The data to be minified.


# array ( )
protected string[] $patterns
Array of patterns to match.


# array ( )
public string[] $extracted
This array will hold content of strings and regular expressions that have been extracted from the JS source code, so we can reliably match "code", without having to worry about potential "code-like" characters inside.


# array ( )