diff -r 000000000000 -r 7f95f8617b0b vendor/bundles/Symfony/Bundle/AsseticBundle/DependencyInjection/Compiler/AssetManagerPass.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/bundles/Symfony/Bundle/AsseticBundle/DependencyInjection/Compiler/AssetManagerPass.php Sat Sep 24 15:40:41 2011 +0200 @@ -0,0 +1,62 @@ + + * + * This source file is subject to the MIT license that is bundled + * with this source code in the file LICENSE. + */ + +namespace Symfony\Bundle\AsseticBundle\DependencyInjection\Compiler; + +use Symfony\Component\DependencyInjection\Reference; +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; + +/** + * Adds services tagged as assets to the asset manager. + * + * @author Kris Wallsmith + */ +class AssetManagerPass implements CompilerPassInterface +{ + public function process(ContainerBuilder $container) + { + if (!$container->hasDefinition('assetic.asset_manager')) { + return; + } + + $am = $container->getDefinition('assetic.asset_manager'); + + // add assets + foreach ($container->findTaggedServiceIds('assetic.asset') as $id => $attributes) { + foreach ($attributes as $attr) { + if (isset($attr['alias'])) { + $am->addMethodCall('set', array($attr['alias'], new Reference($id))); + } + } + } + + // add loaders + $loaders = array(); + foreach ($container->findTaggedServiceIds('assetic.formula_loader') as $id => $attributes) { + foreach ($attributes as $attr) { + if (isset($attr['alias'])) { + $loaders[$attr['alias']] = new Reference($id); + } + } + } + $am->replaceArgument(1, $loaders); + + // add resources + foreach ($container->findTaggedServiceIds('assetic.formula_resource') as $id => $attributes) { + foreach ($attributes as $attr) { + if (isset($attr['loader'])) { + $am->addMethodCall('addResource', array(new Reference($id), $attr['loader'])); + } + } + } + } +}