public function createService(ServiceLocatorInterface $serviceLocator) { $config = $serviceLocator->get('Config'); if (!isset($config['zf2_assetic'])) { throw new \RuntimeException('Missing zf2assetic config key'); } $assetConfig = $config['zf2_assetic']; $assetManager = new AssetManager(); if (!isset($assetConfig['collections']) || !is_array($assetConfig['collections'])) { return $assetManager; } foreach ($assetConfig['collections'] as $assetName => $collectionConfig) { $assetFactory = new \Assetic\Factory\AssetFactory($collectionConfig['root']); $assetFactory->setAssetManager($assetManager); if ($this->canUseCacheBusterForCollection($assetConfig, $collectionConfig)) { $assetFactory->addWorker($serviceLocator->get('AsseticCacheBuster')); } $assets = isset($collectionConfig['assets']) ? $collectionConfig['assets'] : array(); $options = isset($collectionConfig['options']) ? $collectionConfig['options'] : array(); if (empty($options['output'])) { throw new InvalidArgumentException('Asset: ' . $assetName . ' is missing output config'); } $asset = $assetFactory->createAsset($assets, array(), $options); if (isset($collectionConfig['filters'])) { foreach ($collectionConfig['filters'] as $filterService) { $filter = $serviceLocator->get($filterService); $asset->ensureFilter($filter); } } $assetManager->set($assetName, $asset); } return $assetManager; }
public function getTokenParsers() { $factory = new Assetic\Factory\AssetFactory(Kohana::config('assetic.default.assetic_base_dir')); //$sass_filter = new Assetic\Filter\Sass\SassFilter(); $yui_js_filter = new Assetic\Filter\Yui\JsCompressorFilter(Kohana::config('assetic.default.yui_comrpessor_path')); $yui_css_filter = new Assetic\Filter\Yui\CssCompressorFilter(Kohana::config('assetic.default.yui_comrpessor_path')); $filter_manager = new Assetic\FilterManager(); //$filter_manager->set('sass', $sass_filter); $filter_manager->set('yui_js', $yui_js_filter); $filter_manager->set('yui_css', $yui_css_filter); $asset_manager = new Assetic\AssetManager(); $factory->setAssetManager($asset_manager); $factory->setFilterManager($filter_manager); $extensions = new Assetic\Extension\Twig\AsseticExtension($factory); return $extensions->getTokenParsers(); }