protected function cacheLessAssetFiles()
    {

        // Create tmp asset file
        $oTmpAssetFile = $this->createTmpAssetFile(\AssetsBundle\AssetFile\AssetFile::ASSET_LESS);

        // Retrieve Asset file cache manager;
        $oAssetFilesCacheManager = $this->getAssetFilesCacheManager();

        // Production don't need to cache less asset file
        if ($this->getOptions()->isProduction()) {
            $oTmpAssetFile->setAssetFileType(\AssetsBundle\AssetFile\AssetFile::ASSET_CSS);
        }

        // Retrieve asset file cached if exists
        if (file_exists($sAssetFileCachedPath = $oAssetFilesCacheManager->getAssetFileCachePath($oTmpAssetFile))) {
            \Zend\Stdlib\ErrorHandler::start();
            $iAssetFileCachedFilemtime = filemtime($sAssetFileCachedPath);
            \Zend\Stdlib\ErrorHandler::stop(true);
        } else {
            $iAssetFileCachedFilemtime = null;
        }

        // Build import less file
        \Zend\Stdlib\ErrorHandler::start();
        $bIsUpdated = !$this->getAssetFilesConfiguration()->assetsConfigurationHasChanged(array(\AssetsBundle\AssetFile\AssetFile::ASSET_LESS));

        foreach ($this->getAssetFilesConfiguration()->getAssetFiles(\AssetsBundle\AssetFile\AssetFile::ASSET_LESS) as $oAssetFile) {
            if ($iAssetFileCachedFilemtime && $bIsUpdated) {
                $bIsUpdated = $iAssetFileCachedFilemtime >= $oAssetFile->getAssetFileLastModified();
            }
            // If less asset file is a php file, retrieve its content and add it as final less file content
            if ($oAssetFile->getAssetFileExtension() === 'php') {
                $sLessContent = $oAssetFile->getAssetFileContents();
            }
            // Else import it in final less file
            else {
                $sLessContent = '@import "' . str_replace(array(getcwd(), DIRECTORY_SEPARATOR), array('', '/'), $oAssetFile->getAssetFilePath()) . '";';
            }

            $oTmpAssetFile->setAssetFileContents($sLessContent . PHP_EOL);
        }
        \Zend\Stdlib\ErrorHandler::stop(true);

        // If less file is updated return cached asset file
        if ($iAssetFileCachedFilemtime && $bIsUpdated) {
            return array($oTmpAssetFile->setAssetFilePath($sAssetFileCachedPath)->setAssetFileType(\AssetsBundle\AssetFile\AssetFile::ASSET_CSS));
        }

        // Run less asset file filter
        $sAssetFileFilteredContent = $this->getAssetFileFiltersManager()->get(\AssetsBundle\AssetFile\AssetFile::ASSET_LESS)->filterAssetFile($oTmpAssetFile);

        // Set new content to temp asset file contents
        $oTmpAssetFile->setAssetFileContents($sAssetFileFilteredContent, false);

        // Development need to cache less asset file if not empty
        if($oTmpAssetFile->getAssetFileSize()){
            return array($this->getAssetFilesCacheManager()->cacheAssetFile($oTmpAssetFile)->setAssetFileType(\AssetsBundle\AssetFile\AssetFile::ASSET_CSS));
        }

        return array();
    }