protected function getAsseticFactory() { if (empty($this->config["input_path"][0])) { throw new \Exception('Empty input path'); } $factory = new AssetFactory($this->config["input_path"][0], $this->config["debug"]); $factory->setDefaultOutput(""); // add a FilterManager to the AssetFactory $fm = new FilterManager(); $factory->setFilterManager($fm); // adding some filters to the filter manager if ($this->config["less_filter"]) { $lessphpFilter = new LessphpFilter(); if ($this->lessPresets) { $lessphpFilter->setPresets($this->lessPresets); } $fm->set("less", $lessphpFilter); } if ($this->config["scss_filter"]) { $scssFilter = new ScssphpFilter(); $fm->set("scss", $scssFilter); } $fm->set("min", new CssMinFilter()); return $factory; }
/** * Bootstraps the application. * * This method is called after all services are registered * and should be used for "dynamic" configuration (whenever * a service must be requested). * * @param Application $app * @throws \InvalidArgumentException */ public function boot(Application $app) { $app['assetic.filters'] = $app->share($app->extend('assetic.filters', function ($filters) use($app) { $filters['lessphp'] = $app->share(function () use($app) { $filter = new LessphpFilter(); $filter->setPresets($app['assetic.filter.lessphp.presets']); $filter->setLoadPaths($app['assetic.filter.lessphp.paths']); $filter->setFormatter($app['assetic.filter.lessphp.formatter']); $filter->setPreserveComments($app['assetic.filter.lessphp.preserve_comments']); return $filter; }); return $filters; })); }
if ($entry != '.' && $entry != '..' && substr($entry, -5) == '.less') { $cssFiles[$type][$entry] = realpath($dir . $entry); } } } } } $cssFilterLess = new LessphpFilter(); $vars = array(); foreach ($extensions as $extensionDir) { $file = APP_ROOT_DIR . $extensionDir . '/theme/default/variables.ini'; if (file_exists($file)) { $vars = array_merge($vars, parse_ini_file($file, false)); } } $cssFilterLess->setPresets($vars); foreach ($CONFIG->extensions as $extension) { $dir = APP_ROOT_DIR . '/extension/' . $extension . '/theme/default/css/'; if (is_dir($dir)) { $cssFilterLess->addLoadPath(realpath($dir)); } } $cssFilterLess->addLoadPath(APP_ROOT_DIR . '/core/theme/default/css/'); $cssFilters = array($cssFilterLess); # Index if (APP_WEB_INDEX_DIR) { $am = new AssetManager(); foreach ($cssFiles['index'] as $nameonly => $filename) { $fa = new FileAsset($filename, $cssFilters); $fa->setTargetPath(substr($nameonly, 0, -5) . '.css'); $am->set(str_replace('.', '_', $nameonly), $fa);