/** * Loads the configuration. * * When the debug flag is true, files in an asset collections will be * rendered individually. * * In XML: * * <assetic:config * debug="true" * use-controller="true" * document-root="/path/to/document/root" * closure="/path/to/google_closure/compiler.jar" * yui="/path/to/yuicompressor.jar" * default-javascripts-output="js/build/*.js" * default-stylesheets-output="css/build/*.css" * /> * * In YAML: * * assetic: * debug: true * use_controller: true * document_root: /path/to/document/root * closure: /path/to/google_closure/compiler.jar * yui: /path/to/yuicompressor.jar * default_javascripts_output: js/build/*.js * default_stylesheets_output: css/build/*.css * * @param array $configs An array of configuration settings * @param ContainerBuilder $container A ContainerBuilder instance */ public function load(array $configs, ContainerBuilder $container) { $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('assetic.xml'); $loader->load('templating_twig.xml'); // $loader->load('templating_php.xml'); // not ready yet $configuration = new Configuration(); $processor = new Processor(); $config = $processor->process($configuration->getConfigTree($container->getParameter('kernel.debug')), $configs); $container->setParameter('assetic.debug', $config['debug']); $container->setParameter('assetic.use_controller', $config['use_controller']); $container->setParameter('assetic.document_root', $config['document_root']); $container->setParameter('assetic.default_javascripts_output', $config['default_javascripts_output']); $container->setParameter('assetic.default_stylesheets_output', $config['default_stylesheets_output']); if (isset($config['closure'])) { $container->setParameter('assetic.google_closure_compiler_jar', $config['closure']); $loader->load('google_closure_compiler.xml'); } if (isset($config['yui'])) { $container->setParameter('assetic.yui_jar', $config['yui']); $loader->load('yui_compressor.xml'); } if ($container->getParameterBag()->resolveValue($container->getParameterBag()->get('assetic.use_controller'))) { $loader->load('controller.xml'); $container->setParameter('assetic.twig_extension.class', '%assetic.twig_extension.dynamic.class%'); } else { $loader->load('asset_writer.xml'); $container->setParameter('assetic.twig_extension.class', '%assetic.twig_extension.static.class%'); } if ($container->hasParameter('assetic.less.compress')) { $container->getDefinition('assetic.filter.less')->addMethodCall('setCompress', array('%assetic.less.compress%')); } }
protected static function processConfigs(array $configs, $debug, array $bundles) { $configuration = new Configuration(); $tree = $configuration->getConfigTree($debug, $bundles); $processor = new Processor(); return $processor->process($tree, $configs); }