Source of file TemplateResourcesPass.php
Size: 2,431 Bytes - Last Modified: 2013-05-16T07:32:23+02:00
/home/theseer/Downloads/Symfony/vendor/symfony/assetic-bundle/Symfony/Bundle/AsseticBundle/DependencyInjection/Compiler/TemplateResourcesPass.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | <?php /* * This file is part of the Symfony framework. * * (c) Fabien Potencier <fabien@symfony.com> * * 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\Bundle\AsseticBundle\DependencyInjection\DirectoryResourceDefinition; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; /** * This pass adds directory resources to scan for assetic assets. * * @author Kris Wallsmith <kris@symfony.com> * @author Lukas Kahwe Smith <smith@pooteeweet.org> */ class TemplateResourcesPass implements CompilerPassInterface { public function process(ContainerBuilder $container) { if (!$container->hasDefinition('assetic.asset_manager')) { return; } $engines = $container->getParameter('templating.engines'); // bundle and kernel resources $bundles = $container->getParameter('kernel.bundles'); $asseticBundles = $container->getParameterBag()->resolveValue($container->getParameter('assetic.bundles')); foreach ($asseticBundles as $bundleName) { $rc = new \ReflectionClass($bundles[$bundleName]); foreach ($engines as $engine) { $this->setBundleDirectoryResources($container, $engine, dirname($rc->getFileName()), $bundleName); } } foreach ($engines as $engine) { $this->setAppDirectoryResources($container, $engine); } } protected function setBundleDirectoryResources(ContainerBuilder $container, $engine, $bundleDirName, $bundleName) { $container->setDefinition( 'assetic.'.$engine.'_directory_resource.'.$bundleName, new DirectoryResourceDefinition($bundleName, $engine, array( $container->getParameter('kernel.root_dir').'/Resources/'.$bundleName.'/views', $bundleDirName.'/Resources/views', )) ); } protected function setAppDirectoryResources(ContainerBuilder $container, $engine) { $container->setDefinition( 'assetic.'.$engine.'_directory_resource.kernel', new DirectoryResourceDefinition('', $engine, array($container->getParameter('kernel.root_dir').'/Resources/views')) ); } } |