示例#1
0
 /**
  * Returns LESS compiler set up for use with MediaWiki
  *
  * @since 1.22
  * @since 1.26 added $extraVars parameter
  * @param Config $config
  * @param array $extraVars Associative array of extra (i.e., other than the
  *   globally-configured ones) that should be used for compilation.
  * @throws MWException
  * @return Less_Parser
  */
 public static function getLessCompiler(Config $config, $extraVars = array())
 {
     // When called from the installer, it is possible that a required PHP extension
     // is missing (at least for now; see bug 47564). If this is the case, throw an
     // exception (caught by the installer) to prevent a fatal error later on.
     if (!class_exists('Less_Parser')) {
         throw new MWException('MediaWiki requires the less.php parser');
     }
     $parser = new Less_Parser();
     $parser->ModifyVars(array_merge(self::getLessVars($config), $extraVars));
     $parser->SetImportDirs(array_fill_keys($config->get('ResourceLoaderLESSImportPaths'), ''));
     $parser->SetOption('relativeUrls', false);
     $parser->SetCacheDir($config->get('CacheDirectory') ?: wfTempDir());
     return $parser;
 }