‪TYPO3CMS  10.4
TYPO3\CMS\Core\Resource\ResourceCompressor Class Reference
Inheritance diagram for TYPO3\CMS\Core\Resource\ResourceCompressor:
TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorTest\Fixtures\TestableResourceCompressor

Public Member Functions

 __construct ()
 
 setRootPath ($rootPath)
 
array concatenateCssFiles (array $cssFiles)
 
array concatenateJsFiles (array $jsFiles)
 
array compressCssFiles (array $cssFiles)
 
string compressCssFile ($filename)
 
array compressJsFiles (array $jsFiles)
 
string compressJsFile ($filename)
 

Protected Member Functions

mixed createMergedCssFile (array $filesToInclude)
 
mixed createMergedJsFile (array $filesToInclude)
 
mixed createMergedFile (array $filesToInclude, $type='css')
 
string getFilenameFromMainDir ($filename)
 
bool checkBaseDirectory ($filename, array $baseDirectories)
 
string cssFixRelativeUrlPaths (string $contents, string $filename)
 
string cssFixStatements ($contents)
 
 writeFileAndCompressed ($filename, $contents)
 
string returnFileReference ($filename)
 
string retrieveExternalFile ($url)
 
string compressCssString ($contents)
 
string getJavaScriptFileType ()
 
 getPathFixer ()
 

Protected Attributes

string $targetDirectory = 'typo3temp/assets/compressed/'
 
string $rootPath = ''
 
bool $createGzipped = false
 
int $gzipCompressionLevel = -1
 
string $htaccessTemplate
 

Detailed Description

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

Definition at line 28 of file ResourceCompressor.php.

Constructor & Destructor Documentation

◆ __construct()

Member Function Documentation

◆ checkBaseDirectory()

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

Decides whether a file comes from one of the baseDirectories

Parameters
string$filename‪Filename
array$baseDirectories‪Base directories
Returns
‪bool File belongs to a base directory or not

Definition at line 480 of file ResourceCompressor.php.

◆ compressCssFile()

string TYPO3\CMS\Core\Resource\ResourceCompressor::compressCssFile (   $filename)

◆ compressCssFiles()

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

Compress multiple css files

Parameters
array$cssFiles‪The 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 305 of file ResourceCompressor.php.

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

Referenced by TYPO3\CMS\Core\Page\PageRenderer\doCompressCss().

◆ compressCssString()

string 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 612 of file ResourceCompressor.php.

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

◆ compressJsFile()

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

◆ compressJsFiles()

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

Compress multiple javascript files

Parameters
array$jsFiles‪The 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 366 of file ResourceCompressor.php.

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

Referenced by TYPO3\CMS\Core\Page\PageRenderer\doCompressJavaScript().

◆ concatenateCssFiles()

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

Concatenates the Stylesheet files

Parameters
array$cssFiles‪CSS files to process
Returns
‪array CSS files

Definition at line 106 of file ResourceCompressor.php.

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

Referenced by TYPO3\CMS\Core\Page\PageRenderer\doConcatenateCss().

◆ concatenateJsFiles()

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

◆ createMergedCssFile()

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

Creates a merged CSS file

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

Definition at line 207 of file ResourceCompressor.php.

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

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

◆ createMergedFile()

mixed TYPO3\CMS\Core\Resource\ResourceCompressor::createMergedFile ( array  $filesToInclude,
  $type = 'css' 
)
protected

◆ createMergedJsFile()

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

Creates a merged JS file

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

Definition at line 218 of file ResourceCompressor.php.

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

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

◆ cssFixRelativeUrlPaths()

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

◆ cssFixStatements()

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

◆ getFilenameFromMainDir()

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

◆ getJavaScriptFileType()

string TYPO3\CMS\Core\Resource\ResourceCompressor::getJavaScriptFileType ( )
protected

Determines the the JavaScript mime type

The <script> tag only needs the type if the page is not rendered as HTML5. In TYPO3 Backend or when TSFE is not available we always use HTML5. For TYPO3 Frontend the configured config.doctype is evaluated.

Returns
‪string

Definition at line 665 of file ResourceCompressor.php.

References $GLOBALS.

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

◆ getPathFixer()

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

◆ retrieveExternalFile()

string 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 593 of file ResourceCompressor.php.

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

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

◆ returnFileReference()

string 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 578 of file ResourceCompressor.php.

References TYPO3\CMS\Core\Core\Environment\getPublicPath(), and TYPO3\CMS\Core\Utility\PathUtility\getRelativePath().

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

◆ setRootPath()

◆ 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$filename‪Target filename
string$contentsFile contents

Definition at line 561 of file ResourceCompressor.php.

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

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

Member Data Documentation

◆ $createGzipped

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

gzipped versions are only created if $TYPO3_CONF_VARS[TYPO3_MODE]['compressionLevel'] is set

Definition at line 42 of file ResourceCompressor.php.

◆ $gzipCompressionLevel

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

Definition at line 46 of file ResourceCompressor.php.

◆ $htaccessTemplate

string 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 50 of file ResourceCompressor.php.

Referenced by TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorTest\Fixtures\TestableResourceCompressor\getHtaccessTemplate().

◆ $rootPath

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

◆ $targetDirectory

string TYPO3\CMS\Core\Resource\ResourceCompressor::$targetDirectory = 'typo3temp/assets/compressed/'
protected

Definition at line 32 of file ResourceCompressor.php.