/**
  * 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;
 }