Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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();
 }