Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
CRAP | |
76.47% |
13 / 17 |
| LessphpAssetFileFilter | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
6.47 | |
76.47% |
13 / 17 |
| filterContent | |
0.00% |
0 / 1 |
3.47 | |
62.50% |
5 / 8 |
|||
| getEngine | |
0.00% |
0 / 1 |
3.01 | |
88.89% |
8 / 9 |
|||
| <?php | |
| namespace AssetsBundle\AssetFile\AssetFileFilter\StyleAssetFileFilter; | |
| class LessphpAssetFileFilter extends \AssetsBundle\AssetFile\AssetFileFilter\AbstractAssetFileFilter | |
| { | |
| /** | |
| * @var string | |
| */ | |
| protected $assetFileFilterName = 'Lessphp'; | |
| /** | |
| * @var \Less_Parser | |
| */ | |
| protected $engine; | |
| /** | |
| * @param string $sContent | |
| * @param string $sFilePath | |
| * @return string | |
| */ | |
| protected function filterContent(string $sContent, string $sFilePath) : string | |
| { | |
| // Prevents undefined $_SERVER['DOCUMENT_ROOT'] | |
| $bSetDocumentRoot = false; | |
| if(!array_key_exists('DOCUMENT_ROOT', $_SERVER)){ | |
| $_SERVER['DOCUMENT_ROOT'] = getcwd(); | |
| $bSetDocumentRoot = true; | |
| } | |
| $sFilteredContent = $this->getEngine()->parseFile($sFilePath)->getCss(); | |
| if($bSetDocumentRoot){ | |
| unset($_SERVER['DOCUMENT_ROOT']); | |
| } | |
| return $sFilteredContent; | |
| } | |
| /** | |
| * @return \Less_Parser | |
| */ | |
| protected function getEngine() : \Less_Parser | |
| { | |
| $sClassName = '\\Less_Parser'; | |
| if (!class_exists($sClassName)) { | |
| throw new \LogicException('"'. $sClassName. '" class does not exist'); | |
| } | |
| if (is_a($this->engine, $sClassName)) { | |
| $this->engine->Reset(); | |
| return $this->engine; | |
| } | |
| $oEngine = new $sClassName(); | |
| $oEngine->SetImportDirs(array(getcwd() => getcwd())); | |
| return $this->engine = $oEngine; | |
| } | |
| } |