TYPO3 CMS  TYPO3_7-6
TYPO3\CMS\Core\Resource\ResourceCompressor Class Reference

Public Member Functions

 __construct ()
 
 setInitialPaths ()
 
 setRelativePath ($relativePath)
 
 setRootPath ($rootPath)
 
 setBackPath ($backPath)
 
 concatenateCssFiles (array $cssFiles, array $options=[])
 
 concatenateJsFiles (array $jsFiles)
 
 compressCssFiles (array $cssFiles)
 
 compressCssFile ($filename)
 
 compressJsFiles (array $jsFiles)
 
 compressJsFile ($filename)
 

Static Public Member Functions

static compressCssPregCallback ($matches)
 

Protected Member Functions

 setInitialBackPath ()
 
 setInitialRootPath ()
 
 setInitialRelativePath ()
 
 createMergedCssFile (array $filesToInclude)
 
 createMergedJsFile (array $filesToInclude)
 
 createMergedFile (array $filesToInclude, $type='css')
 
 getFilenameFromMainDir ($filename)
 
 checkBaseDirectory ($filename, array $baseDirectories)
 
 cssFixRelativeUrlPaths ($contents, $oldDir)
 
 findAndReplaceUrlPathsByRegex ($contents, $regex, $newDir, $wrap='|')
 
 cssFixStatements ($contents)
 
 writeFileAndCompressed ($filename, $contents)
 
 returnFileReference ($filename)
 
 retrieveExternalFile ($url)
 
 compressCssString ($contents)
 

Protected Attributes

 $targetDirectory = 'typo3temp/compressor/'
 
 $relativePath = ''
 
 $rootPath = ''
 
 $backPath = ''
 
 $createGzipped = false
 
 $gzipCompressionLevel = -1
 
 $htaccessTemplate
 

Detailed Description

Compressor This merges and compresses CSS and JavaScript files of the TYPO3 Backend.

Definition at line 26 of file ResourceCompressor.php.

Constructor & Destructor Documentation

◆ __construct()

Member Function Documentation

◆ checkBaseDirectory()

TYPO3\CMS\Core\Resource\ResourceCompressor::checkBaseDirectory (   $filename,
array  $baseDirectories 
)
protected

Decides whether a file comes from one of the baseDirectories

Parameters
string$filenameFilename
array$baseDirectoriesBase directories
Returns
bool File belongs to a base directory or not

Definition at line 607 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Utility\GeneralUtility\isFirstPartOfStr().

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\concatenateCssFiles().

◆ compressCssFile()

◆ compressCssFiles()

TYPO3\CMS\Core\Resource\ResourceCompressor::compressCssFiles ( array  $cssFiles)

Compress multiple css files

Parameters
array$cssFilesThe files to compress (array key = filename), relative to requested page
Returns
array The CSS files after compression (array key = new filename), relative to requested page

Definition at line 394 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Resource\ResourceCompressor\compressCssFile().

◆ compressCssPregCallback()

static TYPO3\CMS\Core\Resource\ResourceCompressor::compressCssPregCallback (   $matches)
static

Callback function for preg_replace

See also
compressCssFile
Parameters
array$matches
Returns
string the compressed string
Deprecated:
since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, not in use anymore

Definition at line 455 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Utility\GeneralUtility\logDeprecatedFunction().

◆ compressCssString()

TYPO3\CMS\Core\Resource\ResourceCompressor::compressCssString (   $contents)
protected

Compress a CSS string by removing comments and whitespace characters

Parameters
string$contents
Returns
string

Definition at line 785 of file ResourceCompressor.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\compressCssFile().

◆ compressJsFile()

TYPO3\CMS\Core\Resource\ResourceCompressor::compressJsFile (   $filename)

◆ compressJsFiles()

TYPO3\CMS\Core\Resource\ResourceCompressor::compressJsFiles ( array  $jsFiles)

Compress multiple javascript files

Parameters
array$jsFilesThe files to compress (array key = filename), relative to requested page
Returns
array The js files after compression (array key = new filename), relative to requested page

Definition at line 517 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Resource\ResourceCompressor\compressJsFile().

◆ concatenateCssFiles()

TYPO3\CMS\Core\Resource\ResourceCompressor::concatenateCssFiles ( array  $cssFiles,
array  $options = [] 
)

Concatenates the Stylesheet files

Options: baseDirectories If set, only include files below one of the base directories

Parameters
array$cssFilesCSS files to process
array$optionsAdditional options
Returns
array CSS files

Definition at line 192 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Resource\ResourceCompressor\checkBaseDirectory(), TYPO3\CMS\Core\Resource\ResourceCompressor\createMergedCssFile(), and TYPO3\CMS\Core\Resource\ResourceCompressor\getFilenameFromMainDir().

◆ concatenateJsFiles()

TYPO3\CMS\Core\Resource\ResourceCompressor::concatenateJsFiles ( array  $jsFiles)

Concatenates the JavaScript files

Parameters
array$jsFilesJavaScript files to process
Returns
array JS files

Definition at line 251 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Resource\ResourceCompressor\createMergedJsFile(), and TYPO3\CMS\Core\Resource\ResourceCompressor\getFilenameFromMainDir().

◆ createMergedCssFile()

TYPO3\CMS\Core\Resource\ResourceCompressor::createMergedCssFile ( array  $filesToInclude)
protected

Creates a merged CSS file

Parameters
array$filesToIncludeFiles which should be merged, paths relative to root path
Returns
mixed Filename of the merged file

Definition at line 298 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Resource\ResourceCompressor\createMergedFile().

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\concatenateCssFiles().

◆ createMergedFile()

◆ createMergedJsFile()

TYPO3\CMS\Core\Resource\ResourceCompressor::createMergedJsFile ( array  $filesToInclude)
protected

Creates a merged JS file

Parameters
array$filesToIncludeFiles which should be merged, paths relative to root path
Returns
mixed Filename of the merged file

Definition at line 309 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Resource\ResourceCompressor\createMergedFile().

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\concatenateJsFiles().

◆ cssFixRelativeUrlPaths()

TYPO3\CMS\Core\Resource\ResourceCompressor::cssFixRelativeUrlPaths (   $contents,
  $oldDir 
)
protected

Fixes the relative paths inside of url() references in CSS files

Parameters
string$contentsData to process
string$oldDirDirectory of the original file, relative to TYPO3_mainDir
Returns
string Processed data

Definition at line 625 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Resource\ResourceCompressor\findAndReplaceUrlPathsByRegex().

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\compressCssFile(), and TYPO3\CMS\Core\Resource\ResourceCompressor\createMergedFile().

◆ cssFixStatements()

TYPO3\CMS\Core\Resource\ResourceCompressor::cssFixStatements (   $contents)
protected

◆ findAndReplaceUrlPathsByRegex()

TYPO3\CMS\Core\Resource\ResourceCompressor::findAndReplaceUrlPathsByRegex (   $contents,
  $regex,
  $newDir,
  $wrap = '|' 
)
protected

Finds and replaces all URLs by using a given regex

Parameters
string$contentsData to process
string$regexRegex used to find URLs in content
string$newDirPath to prepend to the original file
string$wrapWrap around replaced values
Returns
string Processed data

Definition at line 651 of file ResourceCompressor.php.

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\cssFixRelativeUrlPaths().

◆ getFilenameFromMainDir()

TYPO3\CMS\Core\Resource\ResourceCompressor::getFilenameFromMainDir (   $filename)
protected

◆ retrieveExternalFile()

TYPO3\CMS\Core\Resource\ResourceCompressor::retrieveExternalFile (   $url)
protected

Retrieves an external file and stores it locally.

Parameters
string$url
Returns
string Temporary local filename for the externally-retrieved file

Definition at line 766 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Utility\GeneralUtility\getUrl(), and TYPO3\CMS\Core\Utility\GeneralUtility\writeFile().

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\createMergedFile().

◆ returnFileReference()

TYPO3\CMS\Core\Resource\ResourceCompressor::returnFileReference (   $filename)
protected

Decides whether a client can deal with gzipped content or not and returns the according file name, based on HTTP_ACCEPT_ENCODING

Parameters
string$filenameFile name
Returns
string $filename suffixed with '.gzip' or not - dependent on HTTP_ACCEPT_ENCODING

Definition at line 750 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Utility\GeneralUtility\getIndpEnv().

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\compressCssFile(), and TYPO3\CMS\Core\Resource\ResourceCompressor\compressJsFile().

◆ setBackPath()

TYPO3\CMS\Core\Resource\ResourceCompressor::setBackPath (   $backPath)

Sets relative back path

Parameters
string$backPathBack path
Returns
void

Definition at line 175 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Resource\ResourceCompressor\$backPath.

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\setInitialBackPath().

◆ setInitialBackPath()

TYPO3\CMS\Core\Resource\ResourceCompressor::setInitialBackPath ( )
protected

◆ setInitialPaths()

◆ setInitialRelativePath()

TYPO3\CMS\Core\Resource\ResourceCompressor::setInitialRelativePath ( )
protected

◆ setInitialRootPath()

TYPO3\CMS\Core\Resource\ResourceCompressor::setInitialRootPath ( )
protected

◆ setRelativePath()

TYPO3\CMS\Core\Resource\ResourceCompressor::setRelativePath (   $relativePath)

Sets relative path to PATH_site

Parameters
string$relativePathRelative path to site root
Returns
void

Definition at line 149 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Resource\ResourceCompressor\$relativePath.

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\setInitialRelativePath().

◆ setRootPath()

TYPO3\CMS\Core\Resource\ResourceCompressor::setRootPath (   $rootPath)

Sets absolute path to working directory

Parameters
string$rootPathAbsolute path
Returns
void

Definition at line 162 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Resource\ResourceCompressor\$rootPath.

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\setInitialRootPath().

◆ writeFileAndCompressed()

TYPO3\CMS\Core\Resource\ResourceCompressor::writeFileAndCompressed (   $filename,
  $contents 
)
protected

Writes $contents into file $filename together with a gzipped version into $filename.gz

Parameters
string$filenameTarget filename
string$contentsFile contents
Returns
void

Definition at line 733 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Utility\GeneralUtility\writeFile().

Referenced by TYPO3\CMS\Core\Resource\ResourceCompressor\compressCssFile(), and TYPO3\CMS\Core\Resource\ResourceCompressor\compressJsFile().

Member Data Documentation

◆ $backPath

◆ $createGzipped

TYPO3\CMS\Core\Resource\ResourceCompressor::$createGzipped = false
protected

Definition at line 53 of file ResourceCompressor.php.

◆ $gzipCompressionLevel

TYPO3\CMS\Core\Resource\ResourceCompressor::$gzipCompressionLevel = -1
protected

Definition at line 58 of file ResourceCompressor.php.

◆ $htaccessTemplate

TYPO3\CMS\Core\Resource\ResourceCompressor::$htaccessTemplate
protected
Initial value:
= '<FilesMatch "\\.(js|css)(\\.gzip)?$">
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 7 days"
</IfModule>
FileETag MTime Size
</FilesMatch>'

Definition at line 60 of file ResourceCompressor.php.

◆ $relativePath

TYPO3\CMS\Core\Resource\ResourceCompressor::$relativePath = ''
protected

◆ $rootPath

TYPO3\CMS\Core\Resource\ResourceCompressor::$rootPath = ''
protected

◆ $targetDirectory

TYPO3\CMS\Core\Resource\ResourceCompressor::$targetDirectory = 'typo3temp/compressor/'
protected

Definition at line 31 of file ResourceCompressor.php.