Methods Summary | ||
---|---|---|
public
|
||
public
|
||
public
|
||
public
|
||
public
|
||
abstract public
|
||
protected
|
||
protected
|
||
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
|
||
protected
|
||
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 (
)
|