/** * Compiles LESS file to CSS * * @param string $lessFile a LESS file * * @return boolean true if succesfully compiled & false in other way */ public function compile($lessFile) { // Creates timer $timer = new sfTimer(); // Gets CSS file path $cssFile = $this->getCssPathOfLess($lessFile); sfLESSUtils::createFolderIfNeeded($cssFile); // Is file compiled $isCompiled = false; // If we check dates - recompile only really old CSS if (self::getConfig()->isCheckDates()) { try { $d = new sfLESSDependency(sfConfig::get('sf_web_dir'), sfConfig::get('app_sf_less_plugin_check_dependencies', false)); $shouldCompile = !is_file($cssFile) || $d->getMtime($lessFile) > filemtime($cssFile); } catch (Exception $e) { $shouldCompile = false; } } else { $shouldCompile = true; } if ($shouldCompile) { $buffer = $this->callLesscCompiler($lessFile, $cssFile); if ($buffer !== false) { $isCompiled = $this->writeCssFile($cssFile, $buffer) !== false; } } // Adds debug info to debug array self::$results[] = array('lessFile' => $lessFile, 'cssFile' => $cssFile, 'compTime' => $timer->getElapsedTime(), 'isCompiled' => $isCompiled); return $isCompiled; }